基礎(chǔ)
1 .str.match(reg)-- 返回匹配到的數(shù)組 str.replace()
2 .reg.test(str)--返回一個(gè)布爾值
3 .全局修飾符:i,g,m(多行匹配元素)u,y--還有許多其他的修飾符js不支持
4 .RegExp()構(gòu)造函數(shù)可以動(dòng)態(tài)創(chuàng)建新的正則砂豌。(注意里面的轉(zhuǎn)義)--就算是使用字符串模板也還是需要調(diào)用構(gòu)造函數(shù)來(lái)加工的瓦盛,因?yàn)樽址0宓玫降淖詈笫亲址?/p>
正則的幾種形式
1 .普通字符:只能匹配自身的字符串
2 .特殊字符串:在regexp中必須使用轉(zhuǎn)義字符 {鼓黔。
3 .想要直接匹配的字母和數(shù)字知残,不需要使用反斜杠進(jìn)行轉(zhuǎn)義牍蜂,當(dāng)在正則中使用可以理解的反斜杠字符時(shí),必須使用反斜杠轉(zhuǎn)義接剩。
簡(jiǎn)單字符
1 ./a[bcd]/ ab,ac,ad三種選擇
2 ./a[^b]/ 除了ab的都算
3 ./[0-9a-zA-Z]/:范圍匹配枣氧,僅指定起止符,中間使用-連接截粗。遵循字符串編碼原則信姓,必須是按照字符編碼排列時(shí)才能用這個(gè)方法。
4 ./ab[c-g][1-7]/ ab(c-g)(1-7)匹配四個(gè)字符桐愉。
預(yù)定義字符
1 .\w [a-zA-Z0-9]:單字符
2 .\W\ [^]:非單字符
3 .\s :空白符 str.replace()
4 .\S :非空白符
5 .\d:[0-9]:任意數(shù)字
6 .\D:[^0-9]:非數(shù)字
重復(fù)類數(shù)量詞:允許用戶定義字符重復(fù)匹配次數(shù)
1 .{n} 匹配前一項(xiàng)n次
2 . {n,m} 匹配前一個(gè)最少n,最多m次
3 . {n,} 匹配前一個(gè)最少n次财破,
4 .?={0,1}
5 .*={0,}
6 .+={1,}
高級(jí)匹配模式
貪婪模式
1 .在符合匹配條件的基礎(chǔ)上盡可能的多占字符,而不是隨意占用从诲,越是排在左側(cè)的重復(fù)匹配類匹配優(yōu)先等級(jí)越高(可能和你想的不一樣)
惰性匹配
1 .與貪婪匹配相反,體現(xiàn)了匹配的最小化原則靡羡,先查看字符串中的第一個(gè)值系洛,如果第一個(gè)匹配,那么就立刻返回略步,否則就讀入下一個(gè)字符串描扯。實(shí)現(xiàn)效果 --只需要在重復(fù)類后面加上一個(gè)?趟薄。這個(gè)绽诚?必須在重復(fù)類后面。
支持匹配
1 .只嘗試匹配整個(gè)字符串。如果整個(gè)字符串不能匹配恩够,則自動(dòng)放棄卒落。在重復(fù)類后面加+號(hào)。
正則分組
1 .對(duì)于正則來(lái)說(shuō)蜂桶,一個(gè)小括號(hào)表示一個(gè)獨(dú)立作用域儡毕,其匹配的內(nèi)容將被獨(dú)立存儲(chǔ),以數(shù)組的形式進(jìn)行訪問(wèn)扑媚。
2 .分組后面也是可以使用任意的重復(fù)類量詞腰湾。
3 .好處
1.當(dāng)一個(gè)正則表達(dá)式成功的與目標(biāo)字符串相匹配時(shí),也可以從目標(biāo)字符串中抽出與小括號(hào)中的子模式相匹配的部分疆股。
2.$1,$2,對(duì)于正則表達(dá)式中的第一個(gè)括號(hào)费坊,第二個(gè)括號(hào)的引用。
3.replace中常常用到旬痹,是RegExp對(duì)象的標(biāo)識(shí)符附井。
正則的邊界,確定字符串中的具體方位。
1 .^一行的開頭
2 .$一行的末尾
3 .\b 匹配一個(gè)詞語(yǔ)的邊界 [\b]匹配的是退格符
4 .\B 匹配非詞語(yǔ)標(biāo)記
regexp對(duì)象的實(shí)例屬性
1 .lastIndex:下一次匹配的位置唱凯,這個(gè)例外羡忘,可以改
2 .source:返回正則匹配的源字符串文本。