0

我发现了很多很好的货币正则表达式,它们非常接近我的需要。唉,我不是正则表达式大师,似乎无法编辑我当前的正则表达式以满足要求。

我需要将有效输入限制为“xxx,xxx.xx”的格式。允许的最大金额需要为“999,999.99”,逗号可选。直到现在我一直在使用这个正则表达式:

^([0-9]{1,3}(,[0-9]{3})*|([0-9]+))(.[0-9]{2})?$

除了无法将上限设为“999,999.99”外,它一直运行良好。谢谢您的帮助!



更新


我一直在修修补补,我设法想出了这个:

/^(?:([0-9]{3}?,?)?[0-9]{3}(?:\.[0-9]?[0-9]?)?)$/

还在测试,看看它是否有效。 RegexPlanet没有通过我尝试的任何字符串传递它,但我将通过我的应用程序并手动测试。

4

2 回答 2

3

Burning_LEGION 的回答授权了一些我认为您可能不想要的情况:
- 999,9
- 9。

我假设您希望满足这些条件:
- 如果有逗号,后面有 3 个数字
- 如果有一个点,后面有 2 个数字

^\d{1,3}(,?\d{3})?(\.\d{2})?$
于 2013-03-26T16:01:49.340 回答
3

使用这个正则表达式^\d{1,3}(,?\d{1,3}){0,1}(\.\d{0,2})?$

于 2013-03-26T15:42:21.507 回答