js实现千位分隔符

//正则表达式实现千位分隔符
function format(num){
    var reg = /d{1,3}(?=(d{3})+$)/g;
    return (num + '').replace(reg, '$&,');
}
console.log(format(13123903243));  //13,123,903,243

解释:

正则表达式 d{1,3}(?=(d{3})+$)  表示前面有1~3个数字,后面的至少由一组3个数字结尾。

?=表示正向引用,可以作为匹配的条件,但匹配到的内容不获取,并且作为下一次查询的开始。

 $& 表示与正则表达式相匹配的内容。

//常规循环方法实现千位分隔符
function format1(num){
    num = num + '';  //数字转字符串
    var str = "";
    for(var i=num.length-1,j=1; i>=0; i--,j++){
        if(j%3==0 && i!=0){         //每隔三位加逗号,过滤正好在第一个数字的情况 
            str += num[i] + ',';    //加千分位逗号 
            continue;
        }
        str += num[i];
    }
    return str.split('').reverse().join('');  //字符串=>数组=>反转=>字符串 
}
console.log(format1(13123903243));  //13,123,903,243