修飾符是影響整個正則規則的特殊符號,會對匹配結果和部分內置函數行為產生不同的效果,javaScript正則表達式(以后簡稱正則)中,包含以下三個修飾符:
i(intensity):大小寫不敏感g(global):全局查找,對于一些特定的函數,將迭代完整的字符串,獲得所有的匹配結果,而不僅僅在得到第一個匹配后就停止進行m(multiple):檢測字符串中的換行符,主要是影響字符串開始標識符^
和結束標識符$
的使用示例
函數說明:
match
:http://www.companysz.com.cn/jsref/jsref_match.asp test
:http://www.companysz.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
。
新聞熱點
疑難解答