js的String有一个replace方法,只能对str进行一次替换,假如你的str里有多个相同的须要替换的oldStr,它只能替换第一个,这时候就须要一个相似JAVA中的replaceAll的方法。这里提供一个本身封装的方法,经过while循环调用replace实现,效率相对会低一点。 另外还有一种经过正则表达式实现的,但使用过程当中存在一些问题。正则表达式
String.prototype.replaceAll = function(oldStr,newStr) { var s=this; while( s.indexOf(oldStr) != -1 ) { s=s.replace(oldStr,newStr); }; return s; }
back2Fish同窗提醒,上面循环的方法不严谨,如使用【"no".replaceAll("no","now");】的时候,会陷入死循环,看来仍是正则表达式的方案比较靠谱。this
String.prototype.replaceAll = function(oldStr, newStr) { return this.replace(new RegExp(oldStr,"gm"),newStr); };其中,gm表示匹配全局(global)和多行(multi-line)。