对MVC中的模型应用验证,并且想使用Regex。
希望验证我的模型上的ID在提交时大于0。
我不熟悉Regex …有人可以帮助我吗?
谢谢
我不知道MVC如何相关,但如果你的ID是一个整数,这个BRE应该做:
原文链接:https://www.f2er.com/regex/358017.html^[1-9][0-9]*$
如果你想匹配实数(浮点数)而不是整数,你需要处理上面的情况,正常的十进制数(例如2.5或3.3),你的模式在0和1(即0.25)之间的情况,如好的情况下,你的模式的小数部分为0.(即2.0)。虽然我们在它,我们将添加对整数(即005)前导零的支持:
^(0*[1-9][0-9]*(\.[0-9]+)?|0+\.[0-9]*[1-9][0-9]*)$
注意,第二个是扩展RE。同样的事情可以在基本RE中表示,但是几乎所有的东西都理解ERE这些天。让我们把表达式分解成更容易消化的部分。
^(
插入符在行的开头匹配null,因此在你的正则表达式之前使用插入符将它锚定到行的开头。开始括号是因为or-bar,在下面。稍后再谈。
0*[1-9][0-9]*(\.[0-9]+)?
这可以匹配任何整数或任何大于1的浮点数。因此我们的2.0将匹配,但0.25不会匹配。开始处的0 *处理前导零,因此005 == 5。
|
在此上下文中,管道字符是“或 – 条”。为了评估该表达式,它具有比其他任何事物更高的优先级,并且有效地将两个正则表达式连接在一起。圆括号用于分隔由或条形分隔的多个表达式。
第二部分:
0+\.[0-9]*[1-9][0-9]*
这将匹配以一个或多个0字符开头的任何数字(用*替换以匹配零或多个零,即.25),后跟一个句点,后跟一个包含至少一个非0的数字字符串。所以这匹配0以上和1以下的一切。
)$
最后,我们关闭括号并将正则表达式锚定到带有美元符号的行的末尾,正如插入符锚定到行的开头。
当然,如果你让你的编程语言评价一些数字,而不是试图匹配一个正则表达式,你会节省头痛和cpu。