2012-10-01 37 views
0

我使用正则表达式做一个文本框允许与6位数字和小数点后两位数字:千位分隔符在JavaScript中使用正则表达式

var regEx = /^\d{0,6}(,\d{0,2})?$/ 

现在,我想让它让同样的事情但有一千个分隔符。例如:我想要1321,54是1.321,54。

谢谢。

+0

该数字的小数点左边有六位数(如\ d {0,6}'所示)或六位数,包括小数点的右边两位? –

+2

请注意千位分隔符取决于文化;美国使用格式'123,456,789.123',而德国和法国等国使用'123.456.789,123',然后也有一些使用'123'456'789.123'的瑞士。 – Lucero

+0

您可能需要查看区域感知库,而不是滚动自己的库。也许这样? http://code.google.com/p/jquery-numberformatter/ – dnagirl

回答

0

所以,你想要这个?

/^(\d{1,3}\.\d{3}|\d{0,6})(,\d{0,2})?$/ 

它只是增加了4位,5位或6位十进制数字在通常位置用点分隔的情况。

-1

请参阅number_format on PHPJS,了解PHP的number_format的JavaScript端口,它完全符合您的需求。

1

下面应该工作作为一个正则表达式的解决方案:

/^\d{1,3}(\.?\d{3})?(,\d{0,2})?$/ 

注意,我做了千位分隔符可选的,如果你希望它是强制性的只是删除?\.?结束。