用逗号分隔大数字,每三位数用逗号分隔。
最简单的方法
使用浏览器原生方法:
let num = 123456
num.toLocaleString() // '123,456'
在nodejs环境中,不能直接使用toLocaleString方法,需要引入intl模块。
require('intl').NumberFormat().format(123456) // '123,456'
使用正则表达式替换
正则表达式是一门玄学…
function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, ",");
return parts.join(".");
}
动手遍历
function commaNum(num) {
let parts = num.toString().split('.')
parts[0] = ((str) => {
let tmp = ''
let counter = 0
for(let i = str.length - 1; i >= 0; i--) {
if (counter == 3) {
tmp += ','
i++
counter = 0
continue
}
tmp += str[i]
counter++
}
tmp = tmp.split('').reverse().join('')
return tmp
})(parts[0])
return parts.join('.')
}
console.log(commaNum('23456324')) // '23,456,324'
console.log(commaNum('')) // ''
console.log(commaNum('23')) // '23'
console.log(commaNum('243')) // '243'
console.log(commaNum('2343.345')) // '2,343.345'