`
ljz1318078262
  • 浏览: 40774 次
文章分类
社区版块
存档分类
最新评论

JS中实现replaceAll的方法

 
阅读更多

第一次发现JavaScript中replace()方法如果直接用str.replace("-","!")只会替换第一个匹配的字符.
而str.replace(/\-/g,"!")则可以全部替换掉匹配的字符(g为全局标志)。

replace()
Thereplace()methodreturnsthestringthatresultswhenyoureplacetextmatchingitsfirstargument
(aregularexpression)withthetextofthesecondargument(astring).
Iftheg(global)flagisnotsetintheregularexpressiondeclaration,thismethodreplacesonlythefirst
occurrenceofthepattern.Forexample,

vars="Hello.Regexpsarefun.";s=s.replace(/\./,"!");//replacefirstperiodwithanexclamationpointalert(s);

producesthestring“Hello!Regexpsarefun.”Includingthegflagwillcausetheinterpreterto
performaglobalreplace,findingandreplacingeverymatchingsubstring.Forexample,

vars="Hello.Regexpsarefun.";s=s.replace(/\./g,"!");//replaceallperiodswithexclamationpointsalert(s);

yieldsthisresult:“Hello!Regexpsarefun!”

所以可以用以下几种方式.:
string.replace(/reallyDo/g,replaceWith);
string.replace(newRegExp(reallyDo,'g'),replaceWith);

string:字符串表达式包含要替代的子字符串。
reallyDo:被搜索的子字符串。
replaceWith:用于替换的子字符串。

Js代码收藏代码
  1. <scripttype="text/javascript">
  2. String.prototype.replaceAll=function(reallyDo,replaceWith,ignoreCase){
  3. if(!RegExp.prototype.isPrototypeOf(reallyDo)){
  4. returnthis.replace(newRegExp(reallyDo,(ignoreCase?"gi":"g")),replaceWith);
  5. }else{
  6. returnthis.replace(reallyDo,replaceWith);
  7. }
  8. }
  9. </script>


原文 :http://fuleonardo.iteye.com/blog/339749

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics