一个亮点

本文原创,尽情翻阅

今天项目中遇到一串数字,需要来格式化显示,示例如下
123456231显示为123,456,231

这种场景太常见了,我的做法是:

1
2
3
4
5
6
7
8
9
10
11
12
function format(num) {
if (typeof num !== "string")
num = (num).toString();
var arr = num.split("");
var arr1 = arr.reverse();
var key = 3,len=arr.length;
for (var i = len>5?~~(len / 3) - 1:~~(len / 3); i > 0; i--) {
arr1.splice(key, 0, ",");
key += 4;
}
return arr1.reverse().join("");
}

但是还觉得不错,没bug,没遗漏,可是大神出现了,用他的金刚钻秒杀了我

1
2
3
4
5
function format(num) {
num = num + '';
var reg=/(\d{1,3})(?=(\d{3})+(?:$|\D))/g;
return num.replace(reg,"$1,");
}

一针见血啊,学习了。