国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JS應(yīng)用之正則表達(dá)式

omgdog / 3082人閱讀

摘要:定義正則表達(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匹配非單詞邊界

空白字符