金额正则表达式

时间:2015-08-20 09:49:08

标签: regex

所以,我试图为金额做出一个规范的表达:

这是我到目前为止所做的:

((\d*)([,]{1})(\d{3})([,]{1})?(\d{3})?)|((\d*)([.]{1})(\d{3})([.]{1})?(\d{3})?)|(\d{1,3})

需要验证的表达式例如是:

1 11 111 1.115 11.234 111.111 1111 11,234 111111 1111111111,123123123 123.123 123 111.222.333 111222333

你能告诉我我做错了什么吗?

例如,现在它取代了1 ,,,, 2或333 .... 4或12312asdasd并且它不对。

由于

1 个答案:

答案 0 :(得分:1)

将整个正则表达式置于非捕获组中,然后使用锚点。

^(?:((\d*)([,]{1})(\d{3})([,]{1})?(\d{3})?)|((\d*)([.]{1})(\d{3})([.]{1})?(\d{3})?)|(\d{1,3}))$