js原本有replace方法,請看w3school的說明:正則表達式
replace() 方法用於在字符串中用一些字符替換另外一些字符,或替換一個與正則表達式匹配的子串。函數
語法:this
stringObject.replace(regexp/substr,replacement)spa
第一個參數爲一個字符串或者一個正則表達式,第二個參數爲一個字符串或者一個用於生成字符串的函數。prototype
注意重點:code
若是 regexp 具備全局標誌 g,那麼 replace() 方法將替換全部匹配的子串。不然,它只替換第一個匹配子串。regexp
實例:對象
var str = "dogdogdog"; var str2 = str.replace("dog","cat"); console.log(str2);
這裏僅替換第一個dog字符串,輸出爲:catdogdog。blog
js中是沒有replaceAll方法的,那麼如何實現替換全部匹配的字符串呢,即在js中實現replaceAll方法:字符串
var str = "dogdogdog"; var str2 = str.replace(/dog/g,"cat"); console.log(str2);
實現替換所有匹配字符串,輸出結果爲:catcatcat。
var str = "dogdogdog"; var str2 = str.replace(new RegExp("dog","gm"),"cat"); console.log(str2);
輸出結果同上例。這裏g表示執行全局匹配,m表示執行屢次匹配。
String.prototype.replaceAll = function(s1, s2) { return this.replace(new RegExp(s1, "gm"), s2); }
這樣就能夠像使用replace方法同樣使用replaceAll方法:
var str = "dogdogdog"; var str2 = str.replaceAll("dog", "cat"); console.log(str2);
輸出結果同上例。我的推薦使用第3種方法。