zoukankan      html  css  js  c++  java
  • JS中实现replaceAll的方法

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

    replace() 
    The replace() method returns the string that results when you replace text matching its first argument 
    (a regular expression) with the text of the second argument (a string). 
    If the g (global) flag is not set in the regular expression declaration, this method replaces only the first 
    occurrence of the pattern. For example, 

    var  s = "Hello. Regexps are fun." ;s = s.replace(/\./, "!" ); // replace first period with an exclamation pointalert(s);

    produces the string “Hello! Regexps are fun.” Including the g flag will cause the interpreter to 
    perform a global replace, finding and replacing every matching substring. For example, 

    var  s = "Hello. Regexps are fun." ;s = s.replace(/\./g, "!" ); // replace all periods with exclamation pointsalert(s);

    yields this result: “Hello! Regexps are fun!” 

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

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

    Js代码  收藏代码
    <script type="text/javascript"> 
    String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {  
      if (!RegExp.prototype.isPrototypeOf(reallyDo)) {  
          return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);  
      } else {  
          return this.replace(reallyDo, replaceWith);  
       } 
    } 
    </script>  
    
  • 相关阅读:
    hdu 4614 线段树 二分
    cf 1066d 思维 二分
    lca 最大生成树 逆向思维 2018 徐州赛区网络预赛j
    rmq学习
    hdu 5692 dfs序 线段树
    dfs序介绍
    poj 3321 dfs序 树状数组 前向星
    cf 1060d 思维贪心
    【PAT甲级】1126 Eulerian Path (25分)
    【PAT甲级】1125 Chain the Ropes (25分)
  • 原文地址:https://www.cnblogs.com/myphoebe/p/2363651.html
Copyright © 2011-2022 走看看