JS数字千位符格式化方法

所谓千位符格式化就是指从各位起,每隔3位增加一个逗号,即10,000这种。实现的方法大致有两种,一种是使用正则表达式;另一种是自己编写循环处理。由于我对正则表达式还不是很熟悉,所以在这里只记录循环处理方法。

转成字符处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function toThousand(arg) {
var result = [],
count = 0;
arg = (arg || 0).toString().split("");//将每一位分离
for(var i = arg.length - 1; i >= 0; i--) {
count ++;
result.unshift(arg[i]);
if(!(count%3) && i!=0) {
result.unshift(",");
}
}
return result.join(""); //重新组合成字符串
}
var num = 1122333444455551;
alert(toThousand(num));//1,122,333,444,455,551

第一种方法首先把数字转成字符串,然后将每一位存入数组。接着从末尾开始,每隔3位插入一个逗号

直接对字符操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function toThousand(arg) {
var result = '',
count = 0;
arg = (arg || 0).toString();
for(var i = arg.length-1; i >= 0; i--) {
count++;
result = arg.charAt(i) + result;//返回指定位置字符
if(!(count%3) && i!= 0) {
result = ',' + result;
}
}
return result;
}
var s = "1122333444455551";
alert(toThousand(s)); //1,122,333,444,455,551

第二种方法直接操作字符串,将每一个字符附加给result

toLocaleString

1
2
const num = 1122333444455551;
num.toLocaleString(); //1,122,333,444,455,551