格式化数字时遇到问题。我在这个论坛上找到了一个脚本,我将在本文下面显示。它确实与逗号一起使用,但是当我添加10000000.00
之类的数字时,它会变为10000000,00
,但如果我添加10333333.00
之类的数字,它将变为:{{1}这不是我想要的。我希望我的数字格式如下:10 33 33 33,00
。
我一直在寻找解决方案。我试图改变正则表达式,但我用正则表达式并不是那么好,所以我希望有人可以帮我解决这个问题。
这是剧本:
10 333 333,00
答案 0 :(得分:0)
var tests =
[
3141,
314159,
31415926,
10000000.001,
10333333.002,
42121.1415926535
],
res,
i;
function addCommas(nStr)
{
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? ',' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1 $2');
}
return x1 + x2;
}
for (i = 0; i < tests.length; i++)
{
document.write(addCommas(tests[i]) + '<br>');
}
\d+{3}
很奇怪,被JSLint拒绝(而不是在Firefox上工作)。
在JSFiddle上测试了代码。