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"
原文地址:https://www.cnblogs.com/MrZhujl/p/13037145.html