• 43.replace


    1.replace:把原有的字符替换成新的字符

      在不使用正则的情况下,每当执行一次只能替换一个字符

      var str = "zhangsan2015zhangsan2016"

      str = str.replace(/zhangsan/g,"zhangsanpeixun");

      console.log(str)

      replace 第一项的值是一个正则它的实现原理

      // 首先我们和exec捕获一样,把所有和我们正则匹配的都捕获到,然后把捕获的内容替换成我们需要替换的新内容

      //->  /zhangsan/g 按照这个正则把str中所有可以匹配的都捕获到,然后统一都替换成我们的zhangsanpeixun

      var str = "zhangsan2015zhangsan2016"

      var reg = /zhangsan/g

      console.log(reg.exec(str)); // ["zhangsan", index:0, input:"zhangsan2015zhangsan2016"]

      console.log(reg.exec(str)); // ["zhangsan", index:11, input:"zhangsan2015zhangsan2016"]

      str = str.replace(/zhangsan/g, function(){

        console.log("ok")

        console.log(arguments)

        // 第一次执行匿名函数的结果 -> ["zhangsan", 0, "zhangsan2015zhangsan2016"]

        // 第二次执行匿名函数的结果 -> ["zhangsan", 11, "zhangsan2015zhangsan2016"]

        return "zhangsanpeixun"

      })

      // 第二个参数换成一个函数

        1)匿名函数执行多少次,取决于正则能再字符串中捕获多少次 -》正则捕获两次,所以我们的匿名函数也执行两次

        2)我们每一次执行匿名函数,里面传递的参数值arguments和我们自己通过exec捕获到的结果是非常类似的(即使正则有分组,我们同样可以通过arguments获取到分组捕获的内容)

        3)return:你返回的结果是啥,就相当于把当前这一次大正则捕获的内容替换成你返回的内容

        var str = "zhangsan2015zhangsan2016"

        str = str.replace(/d+/g,function() {

          console.log(arguments[0]) // 每一次执行匿名函数把我们大正则捕获的内容获取到

          console.log(RegExp.$1); // 获取第一个分组捕获的内容,在ie下有时候不兼容

          return 1; // 我返回的1把每一次大正则匹配捕获的内容都替换了

        })

        console.log(str); // "zhangsan1zhangsan1"

    练习:

      var str = "20151213"; //->贰零壹伍壹贰壹叁

      var ary = ["零","壹","贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];

      str = str.replace(/d/g,function(){

        // var num = arguments[0];

        // var str = ary[num];

        return ary[argument[0]];

      })

      console.log(str)//

  • 相关阅读:
    【监控笔记】【1.5】事件通知(event Notification)
    【监控笔记】【1.4】Pssdiag和Sqldiag管理器
    【监控笔记】【1.3】监控事件系列——SQL Trace(黑盒跟踪 BlackBox Trace)
    sqlserver数据库大型应用解决方案总结
    如何学习MySQL数据库管理员(OCP)认证(转)
    PL/SQL基本操作
    OracleOraDb11g_home1TNSListener服务无法启动
    sqlplus无法登陆?
    SQL Server中的扩展事件学习系列
    docker容器的服务发现:consul
  • 原文地址:https://www.cnblogs.com/z-dl/p/8984574.html
Copyright © 2020-2023  润新知