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

    好记性不如烂笔头,每天记录一点点
  • 相关阅读:
    SQL Server 2005 学习笔记之触发器简介[转]
    什么是BCD 码
    关于C# 中的Attribute 特性
    也谈Asp.net 中的身份验证
    SQL Server 2005 创建分区表
    使用SerialPort 对象实现串口拨号器通信[下]
    子角色权限的实现
    SQL Server 中,实现 varbinary 与 varchar 类型之间的数据转换
    TSQL 常用排名函数
    关于ASP.NET 将数据导出成Excel 的总结[中]
  • 原文地址:https://www.cnblogs.com/wayneliu007/p/11600001.html
Copyright © 2011-2022 走看看