zoukankan      html  css  js  c++  java
  • javascript中的replace()方法

    javascript中有很多很好用的操作字符串和数组的方法,replace()就是其中一个。

    看看基本用法

    var str = '1234512345';
    var newStr = str.replace('1', 'a');
    console.log(newStr); // 'a234512345'

    会发现replace会和indexOf类似,只找第一个匹配的字符或是字符串,如果要全局查找替换,那就要用到正则了

    var str = '1234512345';
    var newStr = str.replace(/1/g, 'a');
    console.log(newStr); // 'a2345a2345'

    再看一个用法,比如有这么一个需求,银行卡号,一共十六位,每四位之间加一个空格

    var num = '1234567890123456';
    var arr = [];
    num.replace(/d{4}/g, function(match){
      // match 代表每次匹配的字符或是字符串,类似循环的作用
      // 可以输出一下这个回调的参数,会发现不光有match,还有当前匹配字符的索引,以及原字符串
      console.log(arguments);
      arr.push(match);
    });
    console.log(arr.join(' ')); // '1234 5678 9012 3456';

     补充一个例子,上面有提到银行卡号的例子,卡号是固定16位的,那么如果是不固定的价格,每三位加逗号怎么做呢?这里又要用到正则的另外一个知识点,看demo

    function splitPrice(num){
        var str = num.toString().split('').reverse().join('').replace(/(d{3})/g, '$1,').split('').reverse().join('');
        if(str.length % 4 === 0){
          str = str.substring(1);
        }
        return str;
    }
    
    console.log(splitPrice(1000)); // 1,000
    console.log(splitPrice(1000000)); // 1,000,000
    console.log(splitPrice(100000000000000)); // 100000,000,000,000

    似乎以上的例子,把正则改一下之后可以不需要做之后的判断,待我周末去学习一下

  • 相关阅读:
    Visual Studio 2013 的 Xamarin 安装教程
    BeesCMS后台登录SQL报错注入
    Linux系统更改IP地址
    SSRF漏洞
    代码执行漏洞
    Python零碎的知识(持续更新)
    iptables
    WAF学习_(2)安装
    WAF学习_(1)Lua基础
    SSL协议
  • 原文地址:https://www.cnblogs.com/fxxkhigh/p/5549533.html
Copyright © 2011-2022 走看看