1. 程式人生 > >js中exec,match,replace,test方法區別

js中exec,match,replace,test方法區別

注:pattern 為RegExp的例項, str 為String的例項

用法 說明 返回值
pattern.test(str) 判斷str是否包含匹配結果 包含返回true,不包含返回false
pattern.exec(str) 根據patternstr進行正則匹配 返回匹配結果陣列,如匹配不到返回null
str.match(pattern) 根據pattern對str進行正則匹配 返回匹配結果陣列,如匹配不到返回null
str.replace(pattern, replacement) 根據pattern進行正則匹配,把匹配結果替換為replacement
一個新的字串

1、test()

字串的test方法,比較常用在判斷語句中,最簡單的RegExp方法了,用於檢測一個字串是否匹配某個模式:

RegExpObject.test(string)

如果字串 string 中含有與 RegExpObject 匹配的文字,則返回 true,否則返回 false:

/\d/.test('asdf2') // --true   檢測字串`'asdf2'`中是否函式數字

2、exec()

返回一個數組,其中存放匹配的結果。如果未找到匹配,則返回值為 null。

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);
 }
//W3School
//14

3、match()

例1:非全域性匹配

var a = 'aaaa'.match(/\w/);
console.log(a); // ["a", index: 0, input: "aaaa"]

可以看到,和exec()一樣,在陣列中返回了index 和 input屬性。

例2:全域性匹配

var a = 'aaaa'.match(/\w/g);
console.log(a); // ["a", "a", "a", "a"]

4、replace()

 'aaaa'.replace(/\w/g, 'b')    //"bbbb"

'aaaa'.replace(/\w/g, function(value) {
    return value.toUpperCase();
}); // "AAAA"