特定十进制数正则表达式

时间:2013-06-13 09:51:38

标签: c# asp.net regex validation

我有正则表达式验证器,表达式如下:

^\d{1,4}(\,\d{1,3})?$

我不想验证下一种格式:

  1. 最小3位小数的十进制数字,如0,125 1,15,0,5但不是(1,1234)即可,但是,用户可以写出5位数,如(12345,54321 ......)

  2. 排除0,所以如果用户只写0,则会出现错误,但用户可以写0,5或0,125 ... 我不知道如何管理 < / p>

  3. 所以除了方案2之外一切正常。我不知道如何只排除0 ...我可以用正则表达式验证器来做,或者我应该在函数中尝试使用自定义验证器(检查值是否为0)

1 个答案:

答案 0 :(得分:2)

您可以禁止该号码包含negative lookbehind的所有零。这也会使所有由零和点组成的条目无效,但这可能是一件好事:很可能因为你不想要一个独立的零,你不想要00000,或0.000

^(\d{1,4}(\.\d{1,3})?)(?<!^[0\.]+)$
//                    ^^^^^^^^^^^^
//                        |||
//                The lookbehind part

我添加到表达式中的部分会检查字符串是否完全由零和点组成。这是demo on ideone