摘要:定義正則表達(dá)式是用于匹配字符串中字符組合的模式。使用正則表達(dá)式或者一個固定字符串分隔一個字符串,并將分隔后的子字符串存儲到數(shù)組中的方法。常用的正則表達(dá)式手機(jī)號郵政編碼校驗匹配漢字簡易郵箱校驗
定義
正則表達(dá)式是用于匹配字符串中字符組合的模式。
創(chuàng)建正則表達(dá)式兩種方式:
1.new RegExp()
let pattern1 = new RegExp("cat"); //第一個參數(shù)字符串 let pattern2 = new RegEXP("cat", "ig"); //第二個參數(shù)可選模式修飾符
i:忽略大小寫
g:全局匹配,即模式被應(yīng)用于所有字符串,而非匹配到第一項時立即停止
m:多行匹配
y:執(zhí)行“粘性”搜索,匹配從目標(biāo)字符串的當(dāng)前位置開始,可以使用y標(biāo)志
2.字面量(以下栗子均使用字面量的方式創(chuàng)建正則表達(dá)式)
let pattern3 = /cat/; let pattern4 = /cat/ig;匹配正則表達(dá)式
1.test
在字符串中測試是否匹配的RegExp方法,它返回true或false。
let str = "This is a cat!"; console.log(pattern4.test(str)); //true
2.exec
在字符串中執(zhí)行查找匹配的RegExp方法,它返回一個數(shù)組(未匹配到則返回null)。
console.log(pattern4.exec(str)); //[cat]
3.match
在字符串中執(zhí)行查找匹配的String方法,它返回一個數(shù)組或者在未匹配到時返回null。
console.log(str.match(pattern4)); //[cat]
4.replace
在字符串中執(zhí)行查找匹配的String方法,并且使用替換字符串替換掉匹配到的子字符串。
console.log(str.replace(pattern4, "dog")); //This is a dog!
5.search
在字符串中測試匹配的String方法,它返回匹配到的位置索引,或者在失敗時返回-1。
console.log(str.search(pattern4)); //10
6.split
使用正則表達(dá)式或者一個固定字符串分隔一個字符串,并將分隔后的子字符串存儲到數(shù)組中的String方法。
console.log(str.split(pattern4)); //["This is a ", "!"]正則表達(dá)式語法
重復(fù)匹配(?、*、+、.、{m,n})
.匹配除換行符外的任意字符,單個匹配
x?匹配0個或1個x
x*匹配0個或任意多個x
x+匹配至少1個x
x{m,n}匹配最少m,最多n個的x,閉區(qū)間
(xyz){m,n}把xyz看成一個整體,匹配xyz最少m次最多n次
chrome|firefox|ie匹配chrome或者firefox或者ie中的任意一個
let str = "google", str1 = "gooooogle", str2 = "ggle", pattern = /g..gle/, pattern1 = /go*gle/, pattern2 = /go+gle/, pattern3 = /g.*gle/,//0個或多個的任意字符 pattern4 = /go?gle/, pattern5 = /go{2,4}gle/, pattern6 = /go{3}gle/,//匹配3個o->gooogle pattern7 = /go{3,}gle/;//匹配3個或3個以上o console.log(pattern.test(str));//true console.log(pattern1.test(str));//true console.log(pattern1.test(str1));//true console.log(pattern2.test(str1));//true console.log(pattern2.test(str2));//false console.log(pattern3.test(str));//true console.log(pattern3.test(str2));//true console.log(pattern4.test(str));//false console.log(pattern7.test(str1));//true
字符類匹配
[a-z]*表示任意個a-z中的字符
[A-Z]*表示任意個A-Z中的字符
[0-9]*表示任意個0-9中的字符
[a-zA-Z0-9]表示匹配一個以上三種情況下的任意一個字符
[^0-9]表示非0-9的任意字符
^[0-9]表示以0-9為起始字符,^表示從起始位置開始匹配
[0-9]$表示以0-9為結(jié)束字符,$表示匹配結(jié)束位置
/d匹配數(shù)字,同[0-9]
/D匹配非數(shù)字,同[ ^0-9]
/w匹配字母數(shù)字及下劃線_,同[a-zA-Z0-9_]
/W匹配非字母數(shù)字及下劃線_,同[^a-zA-Z0-9_]
匹配單詞邊界
B匹配非單詞邊界
空白字符