将验证应用于MVC中的模型,并希望使用Regex进行验证.
希望验证我的模型上的ID在提交时大于0.
我不知道MVC是如何相关的,但是如果你的ID是一个整数,那么这个BRE应该:
原文链接:https://www.f2er.com/regex/357337.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.在Basic RE中可以表达同样的事情,但是现在几乎所有事情都理解ERE.让我们将表达式分解为更容易消化的部分.
^(
插入符号在行的开头匹配null,因此在正则表达式之前用插入符号将其锚定到行的开头.由于下面的or-bar,左括号是开括号.稍后会详细介绍.
0*[1-9][0-9]*(\.[0-9]+)?
这匹配任何整数或任何高于1的浮点数.因此我们的2.0将匹配,但0.25不匹配.开头的0 *处理前导零,因此005 == 5.
|
在此上下文中,管道字符是“or-bar”.为了评估此表达式,它具有比其他所有内容更高的优先级,并且有效地将两个正则表达式连接在一起.括号用于对由or-bars分隔的多个表达式进行分组.
第二部分:
0+\.[0-9]*[1-9][0-9]*
这匹配以一个或多个0个字符开头的任何数字(替换为*以匹配零个或多个零,即.25),后跟一个句点,后跟一个包含至少一个不是0的数字字符串.所以这匹配0以上1以下的所有内容.
)$
最后,我们关闭括号并将正则表达式锚定到带有美元符号的行的末尾,就像插入符号固定到行的开头一样.