我试图将“123456”这样的号码变成“123,456”。 我的原始代码是
number.replace(/(?=(?:\d{3})+(?!\d))/g,',')
当数字大小不是三的倍数时,它可以正常工作。
所以我尝试添加(?<=\d)
以确保不会在开头添加逗号。但是Chrome表示它是无效的正则表达式
number.replace(/(?=(?<=\d)(?:\d{3})+(?!\d))/g,',')
那么格式化数字的正确表达式是什么?
更新:
解决了逗号的问题。
但我仍然不明白为什么表达式会抛出错误。这些括号是配对的。
var number = "123456";
number = number.replace(/(?=(?<=\d)(?:\d{3})+(?!\d))/g,',')
`
答案 0 :(得分:0)
n.toFixed(2).replace(/./g, function(c, i, a) {
return i && c !== "." && ((a.length - i) % 3 === 0) ? ',' + c : c;
});