最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js使用正則實現(xiàn)ReplaceAll全部替換的方法

 更新時間:2023年07月30日 23:23:18   投稿:whsnow  
JS?沒有提供replaceAll這樣的方法。使用正則表可以達成Replace?的效果,感興趣的朋友看看下面的示例

JS 字符串有replace() 方法。但這個方法只會對匹配到的第一個字串替換。

replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。

語法:

stringObject.replace(regexp/substr,replacement)

第一個參數(shù)為一個字符串或者一個正則表達式,第二個參數(shù)為一個字符串或者一個用于生成字符串的函數(shù)。注意重點:

如果 regexp 具有全局標志 g,那么 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。

實例:

var str = "dogdogdog";
var str2 = str.replace("dog","cat");
console.log(str2);

這里僅替換第一個dog字符串,輸出為catdogdog。

如下例:

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>

<BODY>
<script>
var str = "wordwordwordword";
var strNew = str.replace("word","Excel");
alert(strNew);
</script>
</BODY>
</HTML>

如果要全部替換的話,JS 沒有提供replaceAll這樣的方法。使用正則表可以達成Replace 的效果:

str.replace(/word/g,"Excel")

g 的意義是:執(zhí)行全局匹配(查找所有匹配而非在找到第一個匹配后停止)。

<HEAD>
<TITLE> New Document </TITLE>
<script>
function replaceAll(str)
{
if(str!=null)
str = str.replace(/word/g,"Excel")
return str;
}
</script>
</HEAD>
<BODY>
<script>
var str = "wordwordwordword";
var strNew = str.replace("word","Excel");
strNew = replaceAll(str);
alert(strNew);
</script>
</BODY>
</HTML>

以上寫法有個類同的寫法:

str.replace(new RegExp("word","gm"),"Excel")

g 執(zhí)行全局匹配(查找所有匹配而非在找到第一個匹配后停止)。

m 執(zhí)行多行匹配。

除此之外,也可以添加 Stirng對象的原型方法:

String.prototype.replaceAll = function(s1,s2){ 
return this.replace(new RegExp(s1,"gm"),s2); 
}

這樣就可以像使用replace 方法一樣使用replaceAll了

str.replaceAll("word","Excel");

總結(jié)一下, 四種方式

1. 使用具有全局標志g的正則表達式

var str = "dogdogdog";
var str2 = str.replace(/dog/g,"cat");
console.log(str2);

實現(xiàn)替換全部匹配字符串,輸出結(jié)果為:catcatcat

2. 使用另一種具有全局標志g的正則表達式

var str = "dogdogdog";
var str2 = str.replace(new RegExp("dog","gm"),"cat");
console.log(str2);

輸出結(jié)果同上例。這里g表示執(zhí)行全局匹配,m表示執(zhí)行多次匹配。

3. 給string對象添加原型方法replaceAll()

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);

輸出結(jié)果同上例。

4. 使用先split,再join的方法

評論區(qū)@默默之分享的這個方法太贊了,拉到正文里以免有人不看評論,感謝@默默之分享。

var str = "dogdogdog";
var str2 = str.split("dog").join("cat")
console.log(str2);

輸出結(jié)果同上例。

PS:關(guān)于正則,本站還提供了2款非常簡便實用的正則表達式工具供大家使用:

JavaScript正則表達式在線測試工具:http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:http://tools.jb51.net/regex/create_reg

到此這篇關(guān)于js使用正則實現(xiàn)ReplaceAll全部替換的方法的文章就介紹到這了,更多相關(guān)js ReplaceAll內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

乾安县| 始兴县| 元氏县| 阿拉善右旗| 大洼县| 苏尼特右旗| 海伦市| 咸宁市| 新民市| 四会市| 汾阳市| 马尔康县| 徐闻县| 雷州市| 海宁市| 彩票| 崇文区| 宜君县| 怀宁县| 虹口区| 萨迦县| 五寨县| 维西| 关岭| 什邡市| 安远县| 波密县| 高台县| 金阳县| 龙门县| 和林格尔县| 宜黄县| 伊宁县| 石屏县| 那坡县| 遵义市| 梁山县| 阜平县| 顺平县| 榕江县| 石渠县|