打印数字用逗号作为百分隔符

时间:2012-10-07 13:10:50

标签: javascript regex

我有一个像“7847258998”的数字,我想用javascript中的百个逗号分隔符打印。 结果应该是:

7,84,72,58,998

,即右边的前三位数应该组合在一起。剩余的数字按照2的块分组。我尝试了以下内容:

"7847258998".replace(/\B(?=(\d{3})+(\d{2})+(?!\d))/g, ",")

但它返回:7,8,4,72,58998。什么是正确的表达方式?

2 个答案:

答案 0 :(得分:3)

试试这个:

"7847258998".replace(/\B(?=(\d{2})*(\d{3})$)/g, ",");

我在前瞻中匹配字符串的结尾,这样我总能找到理智的东西。除此之外几乎所有匹配。

测试输入长度1-10 ..足以确定它可能有效。虽然效率很低,但是每个字符都需要解析其余的字符串。

但你 要求一个正常的表达式来完成这项工作=)

答案 1 :(得分:0)

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))