我有一个像“7847258998”这样的数字,我想用 javascript 中的百个逗号分隔符打印它。结果应该是:
7,84,72,58,998
即右边的前三位数字应该组合在一起。剩余的数字以 2 为一组分组。我尝试了以下操作:
"7847258998".replace(/\B(?=(\d{3})+(\d{2})+(?!\d))/g, ",")
但它返回:7,8,4,72,58998
. 什么是正确的表达方式?
我有一个像“7847258998”这样的数字,我想用 javascript 中的百个逗号分隔符打印它。结果应该是:
7,84,72,58,998
即右边的前三位数字应该组合在一起。剩余的数字以 2 为一组分组。我尝试了以下操作:
"7847258998".replace(/\B(?=(\d{3})+(\d{2})+(?!\d))/g, ",")
但它返回:7,8,4,72,58998
. 什么是正确的表达方式?
尝试这个:
"7847258998".replace(/\B(?=(\d{2})*(\d{3})$)/g, ",");
我在前瞻中匹配字符串的结尾,这样我总是在寻找理智的东西。否则几乎任何东西都匹配。
在输入长度 1-10 上进行了测试。足以确定它可能有效。但是,这样做的效率很低,因为对于每个字符,您必须解析字符串的其余部分。
但是您确实要求使用正则表达式来完成这项工作=)
function commafy(num)
{
num = num+"";
var re=/(-?\d+)(\d{3})/
while(re.test(num))
{
num=num.replace(re,"$1,$2")
}
return num;
}
function commafyback(num)
{
var x = num.split(',');
return parseFloat(x.join(""));
}
alert(commafy(7847258998))