用js实现如下功能,将给定的数字转化成千分位的格式,如把“10000”转化成“10,000”,并考虑到性能方面的因素。
- 字符串方式
function formatMoney(money) {
//转为字符串 用字符串方法来实现
let str = money.toString();
let last = '';
//三位数以上的数据才进行格式化
while (str.length > 3) {
//每次取末三位子字符串放到一个新的空字符串里并拼接上之前的末三位
//(slice第一个参数传负数,代表从尾部开始截取该个数)
last = ',' + str.slice(-3) + last;
//原本数组不断截掉后三位直到长度小于三个
str = str.slice(0, str.length - 3);
}
//最后把剥完的原数组拼接上新的不断被填充的数组
return str + last;
}
console.log(formatMoney(8663312312212));//8,663,312,312,212
- 正则方式
var str="123598752";
var re=/(?=(?!(\b))(\d{3})+$)/g;
str=str.replace(re,",");
alert(str);