话不多说,直接上代码
- 关键思路是先把数字转字符串,然后字符串的长度按照3的倍数用0补全,然后按照每三个数字进行切割,最后再删除前面补全的0
function formatNumber(num) {
const str = num.toString();
const len = str.length;
const count = Math.ceil(len / 3);
const result = str.padStart(count * 3, '0').match(/(\d{3})/g).join(',');
const start = count * 3 - len;
return result.slice(start)
}
console.log(formatNumber(1234567)); // 1,234,567
- 使用toLocaleString()
function formatNumber(num) {
return num.toLocaleString();
}
console.log(formatNumber(1234567)); // 1,234,567
- 使用正则匹配
function formatNumber(num) {
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
console.log(formatNumber(1234567)); // 1,234,567