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。