js的replace函数只替换第一个,误解导致了BUG的出现,请使用replaceAll

最近发现了一些不严重的问题,是替换不完整导致的。OK,必须犯过错才能记住一些东西,js的replace如果不是用正则表并定义全局替换(g),则只会替换第一个。

只替换第一个匹配字符串:str.replace("aaa","bbb");

替换所有匹配字符串:str.replace(new RegExp("aaa","gm"),"bbb");

当然,定义这样一个replaceAll函数,也许更方便你的工作:

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

参考:http://www.2cto.com/kf/201204/125944.html

若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏