溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

javaScript正則表達(dá)式代碼怎么寫

發(fā)布時間:2022-10-18 16:27:15 來源:億速云 閱讀:92 作者:iii 欄目:編程語言

本文小編為大家詳細(xì)介紹“javaScript正則表達(dá)式代碼怎么寫”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“javaScript正則表達(dá)式代碼怎么寫”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

javaScript 正則表達(dá)式

RegExp對象

‘\b’:代表單詞邊界,比如/\bis\b/會匹配一句話中的is單詞,不會匹配單詞中的is

‘()’:小括號可以用于分組,以便獲取到正則表達(dá)式匹配的內(nèi)容,用1可以獲取第一個小括號的內(nèi)容,用2可以獲取第二個小括號的內(nèi)容。以此類推

g:global全文搜索,不添加,搜索到第一個匹配停止

i:ignore case 忽略大小寫,默認(rèn)大小寫敏感

m:multiple lines多行搜索

var reg = new RegExp(‘\b要替換的文本\b’, ‘g’);
“文本”.replace(reg, “替換后的文本”)

字面量
var reg = /\b文本\b/g;

元字符

正則表達(dá)式由兩種基本字符類型組成

1.原義文本字符:代表它原來含義的字符 例如:abc、123

2.元字符:在正則表達(dá)式中有特殊意義的非字母字符

例如:\b表示匹配單詞邊界,而非\b
在正則表達(dá)式中具體特殊含義的字符:* + ? $ ^ . \ () {} []

元字符:

\t:水平制表符;

\v:垂直制表符;

\n:換行符;

\r:回車符;

\0:空字符;

\f:換頁符;

\cX:與X對應(yīng)的控制字符

字符類

使用元字符[]來構(gòu)建一個簡單的類,

所謂類是指符合某些特性的對象,一個泛指,而不是特指某個字符
表達(dá)式[abc]把字符a或b或c歸為一類,表達(dá)式可以匹配這類字符

字符類取反

使用元字符^創(chuàng)建反向類/負(fù)向類

反向類的意思是不屬于某一類的內(nèi)容

表達(dá)式[^abc]表示不是a或b或c的內(nèi)容

"a1b2c3".replace(/[abc]/g,"x"); // 匹配結(jié)果 : x1x2x3

"a1b2c3".replace(/[^abc]/g,"x"); // 取反  匹配結(jié)果 : axbxcx

范圍類

范圍類:[a-z],[0-9]等等,可以連寫:[a-zA-Z]

如果要匹配里面的橫杠“-”,可以在后面加一個橫杠“-”:[0-9-]

“2016-09-05”.replace(/[0-9-]/g,”X”) => XXXXXXXXXXX

預(yù)定義類

^在中括號中[]表示取反
不在[]表示以xxx開始

\d 數(shù)字
\D 非數(shù)字
\s 空白符
\S 非空白符
\w 單詞字符(字母數(shù)字下劃線)等同于 [a-zA-Z_0-9]
\W 非單詞字符
. 除了回車符和換行符以外的所有字符

正則表達(dá)式還提供了幾個常用的邊界匹配字符:

^ 開頭
$ 結(jié)尾
\b 單詞邊界
\B 非單詞邊界

量詞

? 最多出現(xiàn)一次
+ 至少出現(xiàn)一次
* 任意次
{n} 出現(xiàn)n次
{n,m} 出現(xiàn)n到m次
{n,} 至少出現(xiàn)n次

JS貪婪模式和非貪婪模式

正則表達(dá)式的匹配模式有:貪婪模式,非貪婪模式。默認(rèn)模式為貪婪模式,設(shè)置非貪婪模式需要在量詞后面添加疑問號“?”。

例如:

‘123456789’.match(/\d{3,6}?/g)//匹配結(jié)果為['123456']

‘123456789’.match(/\d{3,6}?/g) //匹配結(jié)果為 ['123','456','789']

分組

使用()可以達(dá)到分組的功能,使量詞作用于分組

| 或

反向引用 $ 捕獲分組

'2015-12-25'.replace(/(\d{4})-(\d{2})-(\d{2})/g,$1/$2/$3);// 匹配結(jié)果  2015/12/25

忽略分組

分組:使用“()” ,忽略分組:“(?:)”。忽略分組的意思是說,雖然分了組,但是不能通過”$”來獲取改組的內(nèi)容。

忽略分組 - 不希望捕獲某些分組,只需要在分組內(nèi)加上 “?:” 就可以
例: (?:Byron)

前瞻(js不支持后顧)

exp(?=assert) 正向前瞻
exp(?1assert) 負(fù)向前瞻

前瞻 匹配某個正則之后 再檢查 后面的匹配規(guī)則

正向前瞻(/\w(?=\d)/);//匹配到單詞之后,在檢查后面是數(shù)字

負(fù)向前瞻(/\w(?!\d)/)://匹配到單詞之后,在檢查后面不是數(shù)字

對象屬性

g是否全文搜索

i是否大小寫敏感

m是否多行搜索

l當(dāng)前表達(dá)式匹配內(nèi)容的最后一個字符的下一個位置

s正則表達(dá)式的文本內(nèi)容

test和exec 方法

reg.test(“str”);// 測試參數(shù)是否匹配正則表達(dá)式reg

字符串對象的方法

str.search(reg);//search返回第一個匹配結(jié)果的index,查找不到返回-1;search方法是忽略全局匹配的

str.match(reg);//返回數(shù)組,match方法 是否具有標(biāo)志g對結(jié)果影響很大,沒有標(biāo)志g只執(zhí)行一次匹配,沒有找到文本,返回null,否則返回數(shù)組

str.split(reg);//返回數(shù)組

str.replace(reg,str1);//

string.replace(str, replaceStr)

string.replace(reg, replaceStr)

string.replace(reg, function)

讀到這里,這篇“javaScript正則表達(dá)式代碼怎么寫”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI