js实现千位符
方法一:使用 toLocaleString() 方法
const number = 1234567.89;
const formattedNumber = number.toLocaleString();
console.log(formattedNumber); // 输出 "1,234,567.89"
该方法会自动根据当前地区设置添加千位分隔符,默认使用逗号作为分隔符。
方法二:使用正则表达式替换
function formatNumberWithCommas(number) {
return number.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
const num = 1234567;
console.log(formatNumberWithCommas(num)); // 输出 "1,234,567"
正则表达式解释:

\B匹配非单词边界(?=(\d{3})+(?!\d))正向预查,匹配后面跟着3的倍数数字的位置
方法三:处理小数的情况
function formatNumber(num) {
const parts = num.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
console.log(formatNumber(1234567.89)); // 输出 "1,234,567.89"
方法四:纯数字处理方式
function addCommas(number) {
let numStr = Math.floor(number).toString();
let result = '';
for (let i = numStr.length - 1, j = 0; i >= 0; i--, j++) {
if (j > 0 && j % 3 === 0) {
result = ',' + result;
}
result = numStr[i] + result;
}
return result;
}
console.log(addCommas(1234567)); // 输出 "1,234,567"
方法五:使用 Intl.NumberFormat
const formatter = new Intl.NumberFormat('en-US');
console.log(formatter.format(1234567)); // 输出 "1,234,567"
这种方法可以指定不同的地区格式,更加灵活国际化。






