实现千分位分割

1,060 阅读1分钟

1、toLocaleString()

var num=123456789.65478;
var result=num.toLocaleString();
console.log(result); // 123.456.789.65478

2、正则(只能实现整数)

var num=123456789;
<!--var reg=/(\d)(?=(?:\d{3}))+$/g;-->
var reg=/(\d)(?=(\d{3})+$)/g;
var result=num.replace(reg,"$1,");
console.log(result);

?:替换时忽略

封装函数

1、js

function numFormat(num){
    // 将数字转换为字符串,并分割整数部分和小数部分
    numArr=num.toString().split(".");
    let newArr=[];
    // 将整数部分转换为数组
    var numStr=numArr[0].split('');
    for(var i=0;i<numStr.length;i++){
        if((i+1)%3===0){
            newArr.unshift(",");
        }
        newArr.unshift(numStr[i]);
    }
    // 如果有小数部分,操作完成后拼接起来
    if(numArr[1]){
        newArr=newArr.join("").concat("."+numArr[1]);
    }else{
        newArr=newArr.join("");
    }
    console.log(newArr)
}

2、toLocaleString()

function numFormat(num){
    let result=num.toLocaleString();
    console.log(result);
}

3、正则

function numFormat(num){
    let result=num.toString().indexOf(".")!==-1?
    num.toLocaleString():
    num.replace(/(\d)(?=(\d{3})+$)/g,"$1,")
    console.log(result);
}
numFormat(1234568.23); // 1,234,568.23