1234567890 -> '1,234,567,890'
P.S. 考虑兼容性和性能问题
我写的代码:
function numToStr(num) {
// STEP 1: type conversion
let tempStr = String(num)
// STEP 2: modular -> 3
let m = tempStr.length % 3
// STEP 3: slice -> '1 | 234567890'
let part1 = `${tempStr.slice(0, m)},`
let tempPart2 = tempStr.slice(m), part2 = ''
// STEP 4: split -> '234,567,890'
for (let i = 0; i < tempPart2.length; i++) {
if (i > 0 && i % 3 === 0) {
part2 += ','
}
part2 += tempPart2.charAt(i)
}
// STEP 5: combine -> '1,234,567,890'
let str = part1 + part2
return str
}
const number = 1234567890
numToStr(number) // '1,234,567,890'
function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.