2013-08-07 207 views
-1

我试图找到一条正则表达式来匹配货币值。货币格式的正则表达式

如果价格是1000美元那么需要验证格式1,000.00或1,000但在德国的情况下它是反对像1.000,00或1.000我需要验证输入金额是在美国的格式或德国格式.user可以输入带或不带小数。

+0

到目前为止你还有什么? – Jerry

回答

1

如果您需要处理此类信息,为什么不使用parseCurrency()函数?如果有任何错误,它将产生false

正则表达式,我认为在这种情况下至少应该避免,因为有已经提供的功能。

这就是说,你可以使用像这样的东西(^\d{1,3}(,\d{3})*(\.\d{2})?)$|(^\d{1,3}(\.\d{3})*(,\d{2})?$)

+0

不幸的是,给定的RegExp字符串不能按希望的那样工作:如果是德文格式的数字“12.345.678,00”,RegExp将仅匹配前5位:“12.34”。通过将RegExp更改为'(^ \ d {1,3}(,\ d {3})*(\。\ d {2})?)$ | ^(\ d {1,3}(\。\ d {3})*(,\ d {2})?$)'(将^和$符号放入子模式)我设法让它按预期工作。 – cars10m

+0

@ cars10:奇怪......但很高兴它为你工作。根据你的发现,我已经更新了我的答案。 – npinti