zoukankan      html  css  js  c++  java
  • 千分位显示金额

    网站很多代码,普遍是使用正则

    function thousandBitSeparator(num) {
        return num && num
            .toString()
            .replace(/(d)(?=(d{3})+.)/g, function($0, $1) {
                return $1 + ",";
            });
    }

    然而,对于3000,4500这些却是不适用的

    改进版的正则是,但是仍然有点问题(例如45200)

    function thousandBitSeparator(num) {
      return num && (num
        .toString().indexOf('.') != -1 ? num.toString().replace(/(d)(?=(d{3})+.)/g, function($0, $1) {
          return $1 + ",";
        }) : num.toString().replace(/(d)(?=(d{3}))/g, function($0, $1) {
          return $1 + ",";
        }));
    }

    正则看的有点头大,一般情况下,使用自带的方法就好

    (12345678).toLocaleString("en-US") => "12,345,678"
    //Number.toLocaleString()

    测试:

    let testNum = 1000
    
    function thousandBitSeparator1(num) {
        return num && num
            .toString()
            .replace(/(d)(?=(d{3})+.)/g, function($0, $1) {
                return $1 + ",";
            });
    }
    
    function thousandBitSeparator2(num) {
      return num && (num
        .toString().indexOf('.') != -1 ? num.toString().replace(/(d)(?=(d{3})+.)/g, function($0, $1) {
          return $1 + ",";
        }) : num.toString().replace(/(d)(?=(d{3}))/g, function($0, $1) {
          return $1 + ",";
        }));
    }
    
    function thousandBitSeparator3(num) {
      return num.toLocaleString('en-US')
    }
    
    console.log(thousandBitSeparator1(testNum))  
    console.log(thousandBitSeparator2(testNum))
    console.log(thousandBitSeparator3(testNum))


    let testNum = 45200
    
    function thousandBitSeparator1(num) {
        return num && num
            .toString()
            .replace(/(d)(?=(d{3})+.)/g, function($0, $1) {
                return $1 + ",";
            });
    }
    
    function thousandBitSeparator2(num) {
      return num && (num
        .toString().indexOf('.') != -1 ? num.toString().replace(/(d)(?=(d{3})+.)/g, function($0, $1) {
          return $1 + ",";
        }) : num.toString().replace(/(d)(?=(d{3}))/g, function($0, $1) {
          return $1 + ",";
        }));
    }
    
    function thousandBitSeparator3(num) {
      return num.toLocaleString('en-US')
    }
    
    console.log(thousandBitSeparator1(testNum))
    console.log(thousandBitSeparator2(testNum))
    console.log(thousandBitSeparator3(testNum))
     

    https://segmentfault.com/q/1010000004651380

    https://www.cnblogs.com/freeyiyi1993/p/4603525.html

    好记性不如烂笔头,每天记录一点点
  • 相关阅读:
    "gcc: cannot specify -o when generating multiple output files"解决方案
    VSCode 回退到上一层
    Mac下的clion配置c/c++环境
    安装homebrew报错error: Not a valid ref: refs/remotes/origin/master 的解决方法
    正则多个空格替换成一个空格 多个相同的字符值保留一个
    python for 循环的速度
    下载器
    requests content 和text 编码格式
    博客园积分排名
    python QQ 发送邮件功能
  • 原文地址:https://www.cnblogs.com/wayneliu007/p/11600001.html
Copyright © 2011-2022 走看看