zoukankan      html  css  js  c++  java
  • js 中实现 replaceAll



    js本来有replace方法,请看w3school的说明:

        replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

    语法:

    stringObject.replace(regexp/substr,replacement)


    第一个参数为一个字符串或者一个正则表达式,第二个参数为一个字符串或者一个用于生成字符串的函数。
    注意重点:

        如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。

    实例:

    var str = "dogdogdog";
    var str2 = str.replace("dog","cat");
    console.log(str2);

    这里仅替换第一个dog字符串,输出为catdogdog。

    js中是没有replaceAll方法的,那么如何实现替换所有匹配的字符串呢,即在js中实现replaceAll方法:
    1. 使用具有全局标志g的正则表达式

    var str = "dogdogdog";
    var str2 = str.replace(/dog/g,"cat");
    console.log(str2);

     

    实现替换全部匹配字符串,输出结果为:catcatcat。
    2. 使用另一种具有全局标志g的正则表达式的定义方法

    var str = "dogdogdog";
    var str2 = str.replace(new RegExp("dog","gm"),"cat");
    console.log(str2);


    输出结果同上例。这里g表示执行全局匹配,m表示执行多次匹配。
    3. 给string对象添加原型方法replaceAll()

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


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

    var str = "dogdogdog";

  • 相关阅读:
    常量/静态常量
    git github仓库
    内存泄漏/溢出
    console线和RJ45
    Medium
    教师群
    编程入门学习网站
    科技传播坊公众号
    科技传播坊直播课堂 Scratch
    Scratch 疑难杂症视频
  • 原文地址:https://www.cnblogs.com/the-wang/p/12060198.html
Copyright © 2011-2022 走看看