一、RegExp类型
- g:表达全局(global)模式,即模式将被用于所有字符串,而非在发现第一个匹配项时立即停止
- i:表示不区分大小写(case-insensitive)模式,即在确定匹配项时忽略模式与字符串的大小写
- m:表示多行(multiline)模式,即在到达一行文本末尾时还会继续查找下一行中是否存在与模式匹配的项
其用法如下:
单模式:
多模式:
注:元字符需要用到转义字符:( [ { \ ^ $ | ) ? * + . ] }
二、RegExp实例属性
- global:布尔值,表示是否设置了g标志
- ignoreCase:布尔值,表示是否设置了i标志
- lastIndex:数值,表示开始搜索下一个匹配项的字符位置,从0算起
- multiline:布尔值,表示是否设置了m标志
- source:正则表达式的字符串表示,按照字符字面量形式而非传入构造函数中的字符串模式返回。(即返回需要匹配的模式串)
三、RegExp的实例方法(类似于分模块截取字符串)
1、RegExp对象的主要方法是exec(),是专门为了捕获组而设计的。exec()接受一个参数,即应用模式的字符串,然后返回第一个匹配项信息的数组,没有匹配项则返回null。
exec()方法返回的数组包含两个属性,index,input。index表示匹配项在字符串中的位置,而input表示应用正则表达式的字符串。
2、RegExp的第二个方法:test() ,接受一个参数,若模式与该参数匹配的情况下返回true,否则返回false。
3、valueOf() 方法返回正则表达式本身。
四、RegExp构造函数属性
长属性名 | 短属性名 | 说明 |
Input | $_ | 最近一次要匹配的字符串。Opera未实现此属性 |
lastMatch | $& | 最近一次的匹配项,opera未实现此属性 |
lastParen | $+ | 最近一次匹配的捕获组。Opera未实现此属性 |
leftContext | $‵ | Input字符串中lastMatch之前的文本 |
Multiline | $* | 布尔值。表示是否所有表达式都实验多行模式。IE和Opera未实现此功能 |
rightContext | $’ | Input字符串中lastMatch之后的文本 |
除了上面介绍的属性之外,还有9种用于存储捕获组的构造函数属性。访问这些属性的语法为RegExp.$1、RegExp.$2。。。。。。RegExp.$9,分别用于存储第一、第二。。。。。。第九个匹配的捕获组
(如有错误之处,欢迎指正)