说明 这篇文章,主要和大家聊聊JavaScript中RegExp对象的属性。 解释 每个RegExp对象都包含5个属性,source、global、ignoreCase、multiline、lastIndex。 source:是一个只读的字符串,包含正则表达式的文本。 var reg = /JavaScript/; reg.source; //返回 JavaScript global:是一个只读的布尔值,看这个正则表达式是否带有修饰符g。 修饰符g,是全局匹配的意思,检索字符串中所有的匹配。 var str = "JavaScript"; str.match(/JavaScript/); 在JavaScript中,正则表达式(Regular Expression)是一种强大的文本处理工具,用于匹配字符串中的模式。在使用正则表达式时,了解其内置属性是非常重要的,尤其是`lastIndex`属性,它在全局搜索中扮演关键角色。让我们深入探讨这些属性以及它们如何影响正则表达式的操作。 1. **source**: `source`属性是一个只读字符串,它包含了正则表达式的原始文本,即创建正则表达式时使用的模式。例如: ```javascript var reg = /JavaScript/; reg.source; // 返回 "JavaScript" ``` 2. **global**: `global`属性是一个只读布尔值,表示正则表达式是否启用了全局搜索(`g`修饰符)。如果为`true`,则在字符串中查找所有匹配项,而不仅仅是第一个。例如: ```javascript var str = "JavaScript JavaScript"; str.match(/JavaScript/); // 只匹配第一个,返回 ["JavaScript"] str.match(/JavaScript/g); // 匹配全部,返回 ["JavaScript", "JavaScript"] ``` 3. **ignoreCase**: `ignoreCase`属性同样是一个只读布尔值,表示正则表达式是否忽略大小写(`i`修饰符)。如果为`true`,匹配时将不区分大小写。例如: ```javascript var reg = /JavaScript/; reg.ignoreCase; // 返回 false reg.test("javascript"); // 返回 false var reg = /JavaScript/i; reg.ignoreCase; // 返回 true reg.test("javascript"); // 返回 true ``` 4. **multiline**: `multiline`属性是只读布尔值,表示正则表达式是否启用多行模式(`m`修饰符)。在多行模式下,`^`匹配每一行的开始,`$`匹配每一行的结束。例如: ```javascript var str="java\nJavaScript"; str.match(/^JavaScript/); // 返回 null str.match(/^JavaScript/m); // 匹配到一个JavaScript ``` 5. **lastIndex**: `lastIndex`属性是一个可读写整数,用于全局匹配(`g`修饰符)时的起始位置。在首次匹配后,如果找到匹配,`lastIndex`会被设置为紧接匹配子串之后的位置,以便下次搜索从那里开始。如果没有找到匹配,`lastIndex`会被重置为0。`test()`和`exec()`方法都会用到这个属性。 当使用`test()`或`exec()`进行全局匹配时,若`lastIndex`指向的位置没有找到匹配,它会继续向前搜索直到找到一个匹配或搜索完整个字符串。如果仍然找不到,`lastIndex`会被重置为0。以下示例展示了`lastIndex`如何影响结果: ```javascript var str="JavaScript"; var reg=/JavaScript/g; console.log(reg.test(str)); // 打印 true,lastIndex设为7 console.log(reg.test(str)); // 打印 false,因为从上次lastIndex(7)开始,没有找到匹配,lastIndex重置为0 ``` 了解这些属性对于编写高效的正则表达式至关重要。在处理字符串时,正确地利用`lastIndex`可以避免不必要的重复搜索,提高性能。同时,`global`、`ignoreCase`和`multiline`修饰符的使用可以灵活调整匹配规则,以适应不同的匹配需求。在编写JavaScript代码时,熟练掌握这些属性将有助于实现更复杂的文本处理任务。























- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- (完整版)IP地址运算、主机号、网络号总结.docx
- 办公大楼综合布线方案六类.doc
- [市场营销精品课]如何用小钱做大推广-商家可以巧用网络营销.doc
- 2022教师网络培训感言.docx
- (数据结构C语言版)顺序表和单链表的逆置(精品文档).doc
- 不能成为“计算机”900字.docx
- WEB技术(新)-阶段作业三-共3页.docx
- matlab音频降噪课程设计报告.doc
- SCADA系统介绍课件.ppt
- 2022-游戏开发平台协议范本.docx
- vb库存管理系统论文设计与实现.doc
- 2021-2022年收藏的精品资料通信工程的职业生涯规划.doc
- 保障通风系统安全可靠的措施.doc
- DB22_T_1607_2012_化妆品中单核细胞增生李斯特氏菌检测.pdf
- 2021年网络营销与策划职业技能实训平台题库.doc
- java核心技术.doc


