修饰符是影响整个正则规则的特殊符号,会对匹配结果和部分内置函数行为产生不同的效果,javaScript正则表达式(以后简称正则)中,包含以下三个修饰符:
i(intensity):大小写不敏感g(global):全局查找,对于一些特定的函数,将迭代完整的字符串,获得所有的匹配结果,而不仅仅在得到第一个匹配后就停止进行m(multiple):检测字符串中的换行符,主要是影响字符串开始标识符^
和结束标识符$
的使用示例
函数说明:
match
:http://www.Vevb.com.cn/jsref/jsref_match.asp test
:http://www.Vevb.com.cn/jsref/jsref_test_regexp.asp
修饰符i的使用
var s1 = 'Hello';var s2 = 'hello';var p1 = /Hello/;var p2 = /Hello/i;console.log(p1.test(s1));console.log(p1.test(s2));console.log(p2.test(s1));console.log(p2.test(s2));输出
truefalsetruetrue说明
可以看到正则p2
会忽略s2
中大写的H
的到匹配结果
修饰符g的使用
var p1 = /hello/;var p2 = /hello/g;var str = 'hello world, hello world';console.log(str.match(p1));console.log(str.match(p2));输出
说明 p1
中未使用g修饰符,因此在匹配到第一个hello
时,便停止后续匹配,提取匹配子字符串及匹配位置。而p2
则会完整地匹配字符串,直至字符串结束位,并将所有结果提取出来。
修饰符m的使用
var str = 'hello world,/nhello world';var p1 = /^hello/g;var p2 = /^hello/gm;console.log(str.match(p1));console.log(str.match(p2));注释:^
在此标识字符串的开始(在后续会进行详细介绍)
输出
说明
注意str
中存在换行符/n
。在p1
和p2
存在字符串开始位置标识符,使用p1
会对str
进行整体匹配,因此只存在一个字符串开始位,和一个字符串结束位,因此只匹配到一个hello
。而p2
会将str
根据换行符进行分割,可以理解为存在多个子串,因此存在多个字符串开始位和字符串结束位,所以会匹配到第二个hello
。
新闻热点
疑难解答