我找到了很多很好的货币正则表达式,非常接近我需要的东西。唉,我不是正则表达的大师,似乎无法编辑我当前的正则表达式来满足要求。
我需要将有效输入限制为'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并未将其与我尝试的任何字符串一起传递,但我将通过我的应用并手动测试。
答案 0 :(得分:3)
使用此正则表达式^\d{1,3}(,?\d{1,3}){0,1}(\.\d{0,2})?$
答案 1 :(得分:3)
burning_LEGION的回答授权了一些我认为您可能不想要的案例:
- 999,9
- 9.
我假设您希望满足这些条件:
- 如果有逗号,则后有3个数字
- 如果有一个点,则
^\d{1,3}(,?\d{3})?(\.\d{2})?$