美文网首页
javascript为数字添加千分符

javascript为数字添加千分符

作者: icaojinyu | 来源:发表于2018-12-26 12:09 被阅读0次
    • 实现的功能为:123456789 转换为123,456,789
    • 使用的正则表达式为:
    /(\d{1,3})(?=(\d{3})+$)/g
    
    • 执行完结果就是: 123,456,789

    下面我来解释一下这个正则是怎么实现的

    1. \d 匹配数字相当于[0-9]
    2. {m,n} 匹配的数目大于m小于n,所以\d{1,3}的意思就是匹配1到3个数字
    3. ?= 正向前瞻,它稍微复杂一点,说不清楚就举个例子:
      /\d/会匹配一个数字,/\d(?=\w)/依然只匹配一个数字,但是它要求数字后面跟一个字母,'1a'.match(/\d(?=\w)/g) 结果为 ["1"]
    4. 所以/(\d{1,3})(?=(\d{3})+$)/g这个正则表达式的意思就是:
      匹配1到3个数字,并且这个数字后面要跟着3的倍数的数字,也就是3,6,9,...个数字
    5. '123456789'.match(/(\d{1,3})(?=(\d{3})+$)/g) 会匹配到 ["123", "456"]
    6. 完整代码:
      var num = 1234567890
      function addComma(str) {
        return str.replace(/(\d{1,3})(?=(\d{3})+$)/g,'$1,')
      }
    
      console.log(addComma(num.toString())) // 1,234,567,890
    

    相关文章

      网友评论

          本文标题:javascript为数字添加千分符

          本文链接:https://www.haomeiwen.com/subject/vfchlqtx.html