實(shí)現(xiàn)方式
正則賦值
var rg = /0-9/g
var str = "967"
test返回一個(gè)布爾值,表示當(dāng)前模式是否能匹配參數(shù)字符串
rg.test(str)
exec用來(lái)返回匹配的結(jié)果。如果發(fā)現(xiàn)匹配棠耕,就返回一個(gè)數(shù)組,數(shù)組中的成員都是匹配的字符串柠新,否則返回null
rg.exec(str)
字符串方法
match對(duì)字符串進(jìn)行正則匹配窍荧,返回匹配的數(shù)組,否則返回null
str.match(rg)
search返回第一個(gè)滿足條件的匹配結(jié)果在整個(gè)字符串中的索引恨憎,如果沒有匹配蕊退,則返回-1
str.search(rg)
replace可以替換匹配的值,他接受兩個(gè)參數(shù)憔恳,第一個(gè)是正則表達(dá)式瓤荔,表示模式,第二個(gè)是替換的內(nèi)容
var timeData = "2021.09.12"
timeData.replace(/.\/g,"-")
元字符
轉(zhuǎn)義字符
\
.\ = .
匹配任意的字符
.
^ $ 匹配位置字符
^ 匹配字符串開始的位置
$ 匹配字符串結(jié)束的位置
匹配數(shù)字和字母(\w 和 \W)
\w 匹配數(shù)字和字母
\W 匹配非數(shù)字和字母
匹配數(shù)字和非數(shù)字(\d 和 \D)
\d 匹配數(shù)字
\D 匹配非數(shù)字
匹配空白字符(\s 和 \S)
\s 匹配空白字符
\S 匹配非空白字符
匹配里面的任意字符
[]
匹配所有的中文
/[\u4e00-\u9fa5]/g
匹配除a和z之外的所有字符
[^a-z]
匹配重復(fù)一次或者多次
+
多個(gè)集合
/[mM][zZ]/g
匹配重復(fù)0次或者多次
*
匹配重復(fù)1次或者0次(可有可無(wú))
?
分組匹配
()
分組匹配捕獲多組(第1組)
RegExp.$1
此分組匹配不捕獲
(?:http|https)(xxx)
或者
|
(http|https)
匹配重復(fù)的次數(shù)(a匹配五次)
a {5}
最少4位 最多8位
{4,8}
正向肯定預(yù)查 钥组,只匹配元前面的字符输硝,但不匹配元(?=)
/\d+(?=元)/g
正向否定預(yù)查 表示不是元的字符
/\d+(?!元|\d)/g
反向肯定預(yù)查 表示肯定是@,但不匹配(?<= )
/(?<!@)\d+/g
反向否定預(yù)查 表示肯定不是@程梦,不匹配(?<!)
/(?<@元|\d)\d+/g