js中exec,match,replace,test方法區別
阿新 • • 發佈:2018-12-13
注:pattern
為RegExp
的例項, str
為String
的例項
用法 | 說明 | 返回值 |
---|---|---|
pattern.test(str) |
判斷str 是否包含匹配結果 |
包含返回true ,不包含返回false 。 |
pattern.exec(str) |
根據pattern 對str 進行正則匹配 |
返回匹配結果陣列,如匹配不到返回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"