js實現replaceAll方法

2021-08-29 14:11:57 字數 1774 閱讀 6025

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 的意義是 執行全域性匹配 查詢所有匹配而非在找到第乙個匹...