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