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

    好记性不如烂笔头,每天记录一点点
  • 相关阅读:
    centos下两种方法安装git
    Field.setAccessible()方法
    Tomcat日志格式自定义
    Java监控工具
    JDK目录结构和文件作用介绍
    Java中堆和栈的区别
    Magicodes.WeiChat——使用AntiXssAttribute阻止XSS(跨站脚本攻击)攻击
    Magicodes.WeiChat——缓存管理
    Magicodes.WeiChat——WeChatOAuthTest(网页授权获取用户基本信息)
    Magicodes.WeiChat——后台JS框架封装
  • 原文地址:https://www.cnblogs.com/wayneliu007/p/11600001.html
Copyright © 2011-2022 走看看