正規表示式全域性匹配模式(g修飾符)

技術之光發表於2022-03-18

正規表示式g修飾符:

g修飾符用語規定正規表示式執行全域性匹配,也就是在找到第一個匹配之後仍然會繼續查詢。

語法結構:

建構函式方式:

new RegExp("regexp","g")

物件直接量方式:

/regexp/g

瀏覽器支援:

IE瀏覽器支援此元字元。
火狐瀏覽器支援此元字元。
谷歌瀏覽器支援此元字元。

例項程式碼:

例項一:

var str="this is an antzone good"; 
var reg=/an/;
console.log(str.match(reg));

以上程式碼只能夠匹配第一個"an",因為並沒有進行全域性匹配,在第一個匹配成功之後,就不再繼續匹配了。

例項二:

var str="this is an antzone good"; 
var reg=/an/g;
console.log(str.match(reg));

以上程式碼能夠匹配到兩個"an"。

下面是補充

本文章來詳細介紹js中正規表示式的全域性匹配模式 /g用法,程式碼如下:

var str = "123#abc"; 
var re = /abc/ig; 
console.log(re.test(str)); //輸出ture 
console.log(re.test(str)); //輸出false 
console.log(re.test(str)); //輸出ture 
console.log(re.test(str)); //輸出false

在建立正規表示式物件時如果使用了“g”識別符號或者設定它了的global屬性值為ture時,那麼新建立的正規表示式物件將使用模式對要將要匹配的字串進行全域性匹配。在全域性匹配模式下可以對指定要查詢的字串執行多次匹配。每次匹配使用當前正則物件的lastIndex屬性的值作為在目標字串中開始查詢的起始位置。lastIndex屬性的初始值為0,找到匹配的項後lastIndex的值被重置為匹配內容的下一個字元在字串中的位置索引,用來標識下次執行匹配時開始查詢的位置,如果找不到匹配的項lastIndex的值會被設定為0。當沒有設定正則物件的全域性匹配標誌時lastIndex屬性的值始終為0,每次執行匹配僅查詢字串中第一個匹配的項。可以通下面的程式碼來檢視在執行匹配相應的lastIndex 屬性的值,程式碼如下:

var str = "123#abc"; 
var re = /abc/ig; 
console.log(re.test(str)); //輸出ture 
console.log(re.lastIndex); //輸出7 
console.log(re.test(str)); //輸出false 
console.log(re.lastIndex); //輸出0 
console.log(re.test(str)); //輸出ture 
console.log(re.lastIndex); //輸出7 
console.log(re.test(str)); //輸出false 
console.log(re.lastIndex); //輸出0


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015103/viewspace-2872410/,如需轉載,請註明出處,否則將追究法律責任。

相關文章