替换字符串里面的所有发现

JavaScript的replace()方法在一个字符串里面查找一个特定值,或者正则表达式,并且返回一个新的字符串,其中找到的被替换了。但是如果一个字符串里面包含重复的词,replace()方法只改变第一个发现的词。

例子

str = "one two three one five nine";
newStr = str.replace('one', 'XXX');
alert(newStr);

允许上面的代码,脚本将返回"XXX two three one five nine"。你可以看到,第一个'one'被'XXX'替换了,而第二个'one'没有动。那么JavaScript如何替换字符串当中所有的发现呢?

使用Split()和join()替换全部发现

可以使用Split()join() 函数替换全部的发现。将字符串用指定的词利用split()打断,再用指定的替换词连接起来。

例子

str = "one two three one five nine";
newStr = str.split("one").join("XXX");
alert(newStr);

输出

XXX two three XXX five nine

使用正则表达式RegularExpression

例子

str = "one two three one five nine";
newStr = replaceAll(str,'one','XXX');
alert(newStr);
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
原文链接