美文网首页
js的replace()方法实现全部替换

js的replace()方法实现全部替换

作者: shallwego_ | 来源:发表于2017-06-19 17:31 被阅读0次

    1、replace()

    JS 字符串有replace() 方法。但这个方法只会对匹配到的第一个字串替换。

    • str.replace("word","Excel")

    2、如果要全部替换的话,JS 没有提供replaceAll这样的方法。

    (1)使用正则表达式可以达成Replace 的效果:

     str.replace(/word/g,"Excel")
    

    g 的意义是:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。

    (2)以上写法有个类同的写法:

     str.replace(new RegExp("word","gm"),"Excel")
    **g** 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
    **m** 执行多行匹配。
    
    注意:#####在使用正则表达式时,如果要替换的字符串中包含特殊字符,需要使用转义字符。

    例如:要将如下字符串中的“$”替换为换行符时,要使用转义字符。

    var a="检查日期:20170102;检查医院:中山;检查项目:CT^&^
    检查日期:20170104;检查医院:中山;检查项目:CT^&^
    检查日期:20170115;检查医院:中山;检查项目:CT^&^
    检查日期:20170121;检查医院:中山;检查项目:CT"
    
    alert(a.replace(/\^&\^/g,"<br>"));
    

    3、除此之外,也可以添加 Stirng对象的原型方法:

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

    这样就可以像使用replace 方法一样使用replaceAll了

    str.replaceAll("word","Excel");
    



    正则表达式特殊字符

    特别字符 说明
    $ 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 ‘\n' 或 ‘\r'。要匹配 $ 字符本身,请使用 $。
    ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 ( 和 )。
    * 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 *。
    + 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 +。
    . 匹配除换行符 \n之外的任何单字符。要匹配 .,请使用 \。
    [ ] 标记一个中括号表达式的开始。要匹配 [,请使用 [。
    ? 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 ?。
    将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, ‘n' 匹配字符 ‘n'。'\n' 匹配换行符。序列 ‘\' 匹配 “\”,而 ‘(' 则匹配 “(”。
    ^ 匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 ^。
    { } 标记限定符表达式的开始。要匹配 {,请使用 {。
    | 指明两项之间的一个选择。要匹配 |,请使用 &#124;。

    相关文章

      网友评论

          本文标题:js的replace()方法实现全部替换

          本文链接:https://www.haomeiwen.com/subject/hefnqxtx.html