• js 实现千位分隔符


    1:正则表达式和replace函数

    function numFormat(num){
      var res=num.toString().replace(/d+/, function(n){ // 先提取整数部分
           return n.replace(/(d)(?=(d{3})+$)/g,function($1){
              return $1+",";
            });
      })
      return res;
    }
    
    console.log(numFormat(1234567.90)) // 1,234,567.9

    2:js自带函数toLocaleString() // 输入字符串类型

        const a = 1234567891000;
        const b = 673439.4542;
    
        console.log(a.toLocaleString()); // "1,234,567,891,000"
        console.log(b.toLocaleString()); // "673,439.454"  (小数部分四舍五入了)

    3:先转字符串--》转数组---》反转---》三位加逗号----》反转----》转字符串-----》实现

    function numFormat(num){
        num=num.toString().split(".");  // 分隔小数点
        var arr=num[0].split("").reverse();  // 转换成字符数组并且倒序排列
        var res=[];
        for(var i=0,len=arr.length;i<len;i++){
          if(i%3===0&&i!==0){
             res.push(",");   // 添加分隔符
          }
          res.push(arr[i]);
        }
        res.reverse(); // 再次倒序成为正确的顺序
        if(num[1]){  // 如果有小数的话添加小数部分
          res=res.join("").concat("."+num[1]);
        }else{
          res=res.join("");
        }
        return res;
    }
    
    var a=1234567894532;
    var b=673439.4542;
    console.log(numFormat(a)); // "1,234,567,894,532"
    console.log(numFormat(b)); // "673,439.4542"
  • 相关阅读:
    判断touchmove上下的方向
    this的指向
    JS 判断浏览器是否安装Flash 兼容IE、firefox
    Array类型
    addEventListener()与removeEventListener()
    tap 点透问题
    ts 接口
    ts 类型断言
    ts学习
    vue时间戳转换(10位数)/(13位)
  • 原文地址:https://www.cnblogs.com/MrZhujl/p/13037145.html
Copyright © 2020-2023  润新知