js本來有replace方法,請看w3school的說明:
replace() 方法用於在字串中用一些字元替換另一些字元,或替換乙個與正規表示式匹配的子串。語法:
stringobject.
replace
(regexp/substr,replacement)
第乙個引數為乙個字串或者乙個正規表示式,第二個引數為乙個字串或者乙個用於生成字串的函式。
注意重點:
如果 regexp 具有全域性標誌 g,那麼 replace() 方法將替換所有匹配的子串。否則,它只替換第乙個匹配子串。例項:
var str =
"dogdogdog"
;var str2 = str.
replace
("dog"
,"cat");
console.
log(str2)
;
這裡僅替換第乙個dog字串,輸出為catdogdog
。
js中是沒有replaceall方法的,那麼如何實現替換所有匹配的字串呢,即在js中實現replaceall方法:
1. 使用具有全域性標誌g的正規表示式
var str =
"dogdogdog"
;var str2 = str.
replace
(/dog/g
,"cat");
console.
log(str2)
;
實現替換全部匹配字串,輸出結果為:catcatcat
。
2. 使用另一種具有全域性標誌g的正規表示式
var str =
"dogdogdog"
;var str2 = str.
replace
(new
regexp
("dog"
,"gm"),
"cat");
console.
log(str2)
;
輸出結果同上例。這裡g表示執行全域性匹配,m表示執行多次匹配。
3. 給string物件新增原型方法replaceall()
string.prototype.
replaceall
=function
(s1, s2)
這樣就可以像使用replace方法一樣使用replaceall方法:
var str =
"dogdogdog"
;var str2 = str.
replaceall
("dog"
,"cat");
console.
log(str2)
;
輸出結果同上例。
4. 使用先split,再join的方法
var str =
"dogdogdog"
;var str2 = str.
split
("dog").
join
("cat"
)console.
log(str2)
;
輸出結果同上例。 js 實現ReplaceAll 的方法
js 字串有replace 方法。但這個方法只會對匹配到的第乙個字串替換。如下例 如果要全部替換的話,js 沒有提供replaceall這樣的方法。使用正則表可以達成replace 的效果 str.replace word g,excel g 的意義是 執行全域性匹配 查詢所有匹配而非在找到第乙個匹...
六十 js 實現replaceAll 方法
js不提供replaceall方法,用for迴圈又有效率問題,用乙個正規表示式的解決方案 string.prototype.replaceall function s1,s2 string.replace new regexp oldstring,gm newstring gm g global,m...
js 實現ReplaceAll 的方法
js 字串有replace 方法。但這個方法只會對匹配到的第乙個字串替換。如下例 如果要全部替換的話,js 沒有提供replaceall這樣的方法。使用正則表可以達成replace 的效果 str.replace word g,excel g 的意義是 執行全域性匹配 查詢所有匹配而非在找到第乙個匹...