JavaScript正規表示式方法總結

看風景就發表於2016-12-07

str.match(reg)

1.reg沒有全域性標誌g,match將只執行一次匹配。匹配成功返回一個陣列,arr = [$0,$1,$2,...,index,str],匹配失敗返回null。

   arr中的引數說明,$0是匹配文字,$i是第i個子表示式匹配的文字,index是$0在stringObject中的起始位置,str是對字串物件的引用

2.reg有全域性標誌g,macth將執行全域性檢索。匹配成功返回一個陣列,arr = [str0,str1,str2,...],匹配失敗返回null。

   arr中的引數說明,str0是匹配文字,stri是匹配的子字串(是對整個reg的匹配,非子表示式),沒有額外引數。


str.search(reg)

返回第一個與reg匹配的子串的起始位置,沒有匹配返回-1.


reg.exec(str)

1. reg沒有全域性標誌g,匹配成功返回一個陣列,arr = [$0,$1,$2,...,index,str],匹配失敗返回null,與string.match相同

2. reg有全域性標誌g,exec會在reg的lastIndex屬性指定的字元處開始檢索字串,找到匹配文字,lastIndex會設定該匹配文字的最後一個字元的下一個
  位置。找不到匹配文字,返回null,lastIndex重置為0

如果在一個字串中完成了一次模式匹配之後要開始檢索新的字串,就必須手動地把 lastIndex 屬性重置為 0

例如:

var str = "Visit W3School"; 
var patt = new RegExp("W3School","g");
var result;

while ((result = patt.exec(str)) != null) {
    document.write(result);
    document.write("<br />");
    document.write(patt.lastIndex);
}

或者直接

while (result = patt.exec(str)) {
    document.write(result);
    document.write("<br />");
    document.write(patt.lastIndex);
}

reg.test(str)

返回字串中是否含有與reg匹配的文字,有則true,無則false。

 

相關文章