RegEx的货币缺少一位数字?

时间:2012-11-01 13:48:05

标签: c# javascript asp.net regex

我有以下RegEx ...

(\d*,?){1,5}\.?\d{2}

...它会成功匹配 execpt 此列表中的单个数字9的所有内容......

9
99
999
9,999
99,999
999,999
9,999,999
99,999,999
999,999,999

9.99
99.99
999.99
9,999.99
99,999.99
999,999.99
9,999,999.99
99,999,999.99
999,999,999.99

9
99
999
9999
99999
999999
9999999
99999999
999999999

9.99
99.99
999.99
9999.99
99999.99
999999.99
9999999.99
99999999.99
999999999.99

...你能帮助我匹配那些吗?也许整个RegEx都错了,我只是幸运了?

用法

我在客户端RegularExpressionValidator使用此功能。

技术

ASP.NET Web Form 4.0

1 个答案:

答案 0 :(得分:4)

目前你正在寻找一些数字和/或逗号,然后是一个可选的点,后面跟着两个(非可选的)数字。你也允许,例如99,.99

尝试

\d+(,\d{3})*(\.\d{2})?

至少是一位数字,后跟零(或多组)(逗号位数字位),后跟一组可选的(点位数字)。