JavaScript之不可亵玩系列-04 给整数加千分位符

【原创】码路工人 Coder-Power

大家好,这里是码路工人有力量,我是码路工人,你们是力量。

github-pages
博客园cnblogs


JavaScript之不可亵玩系列-04 给整数加千分位符

今日玩法:

  物料:3位以上整数一个,JavaScript语句若干

  把玩:给整数加千分位符


  • 玩法1:每3位数字加逗号,剩余头部1~3位数字也加逗号

    • 玩法解析:

      • 第一部分

        1到3位数字

        位数能整除3时,剩余头部0位,视为没有第一部分或第一部分视为3位,都可以。

        用到的相关正则语法有

        1
        2
        \d{数字位数}      // 本例此处要求数字位1到3位
        (\d{1,3})(?=限定用第二表达式) // 第二表达式即参照下文第二部分
      • 第二部分

        匹配连在一起的三位数字,出现一次或多次,并且结尾。

        用到的相关正则语法有

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
            \d{3}+$   // 3位数字出现一次或多次
        ```

        - 然后,将匹配到的第一部分替换为其内容加逗号,就完成了


        - ### 撸一把:

        ```js
        var arr = 12345678

        var regExp = /(\d{1,3})(?=(\d{3})+$)/g

        var ret = arr.toString().replace(regExp, '$1,')

        console.log(ret) // 12,345,678

  • 玩法2:利用单词边界的骚操作

    • 玩法解析:

      • 找到分单词边界,限定条件:第二部分

      • 第二部分:又分两部分

        • 1.第一组,三位数字,出现一次或多次
        • 2.第二组,单词边界
      • 然后,将贪婪匹配结果(也就是非单词边界)替换为逗号就可以了

    • 撸一把:

      1
      2
      3
      4
      5
      6
      7
      var arr = 12345678

      var regExp = /\B(?=((?:(\d{3}))+(?:(\b))))/g

      var ret = arr.toString().replace(regExp, ',')

      console.log(ret) // 12,345,678

      这个骚操作 GET 到没有啊。
      反正以码路工人的脑瓜是想不出,这个是网上查的。(不是不贴,出处忘记了…)

      收工。


–END–


公众号(码路工人有力量)

欢迎关注分享,一起学习提高吧。
QRCode/微信订阅号二维码
CoderPowerQRCode