三种方法:
1.Number.toLocaleString()
function comma(num){
return num.toLocaleString();
}
console.log(commafy(12345678));//12,345,678
2.暴力解法,每个数字存入数组,计数,每隔3个push一个千分位分隔符‘,’
function commafy(num){
const arr = (num + "").split("");//为了将输入的转为str +""
let result = [];
let len = arr.length - 1;
var count = 0;
while(len >= 0){
if(count && count % 3 == 0){//count不为0
result.push(',');
}
result.push(arr[len--]);
count++;
}
return result.reverse().join("");
}
3.正则(?=pattern) 不消耗字符,下一字符匹配会从预查之前的位置开始。相当于匹配3个、6个、9个。。。。
function comma(num){
const arr = (num + "").replace(/\d{1,3}(?=(\d{3})+$)/g,"$&,");
return arr;
}