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

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

  • 相关阅读:
    软件工程--团队作业2
    软件工程——团队作业1
    软件工程第二次作业——四则运算结对编程3.0版本(最终版本)
    软件工程第一次作业补充
    软件工程第一次作业
    实验一
    Qt-关于QTreeView的一些设置
    Qt-QTreeView绘制单元格
    NX二次开发-获取集成环境下打开的part名
    NX二次开发-NX是否处于集成环境下
  • 原文地址:https://www.cnblogs.com/fxxkhigh/p/5549533.html
Copyright © 2011-2022 走看看