• 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";
    var str2 = str.replaceAll("dog", "cat");
    console.log(str2);

    输出结果同上例。
    个人推荐使用第3种方法。

  • 相关阅读:
    Git问题(Your local changes to the followingcant checkout because of unmerged files)
    Java实体映射工具 MapStruct
    获取一段代码执行花费的时长
    mybatis的xml中trim标签
    SQL语句统计每天、每月、每年的数据
    Java常见异常
    跨域与跨域访问
    java8新特性
    java中i=i++问题分析
    钉钉——第三方应用嵌入钉钉【微应用】
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/11609088.html
Copyright © 2020-2023  润新知