正则表达式,小数点两边有特定的必需数字

时间:2014-07-03 09:47:53

标签: c# asp.net .net regex

我试图找出一个asp.net RequiredFieldValidator的正则表达式,它验证从1.001到99.9999的十进制值。

这意味着每个值大于或等于1.001且小于或等于99.9999。

我最接近的是:

(?=\d+(?:\.\d+)?$)(?![0\.]+$).{1,7}$

这仍然允许0.1和1.0001,我该如何阻止这些值?

2 个答案:

答案 0 :(得分:1)

您可以对该任务使用否定前瞻:

^0*(?!1(?:\.0+)?$)(?!1\.000)(?!99\.9999.*[1-9])[1-9][0-9]?(?:\.[0-9]+)?$

Regular expression visualization

<强> Demo

答案 1 :(得分:0)

我不知道asp.net,但也许你可以使用这样的东西?

[1-9][0-9]?\.[0-9]{2}[1-9][0-9]?

然而,可能将此转换为float并在间隔内检查它可以解决问题,而无需使用正则表达式...