正则表达式 – 任何大于0的数字的正则表达式?
将验证应用于MVC中的模型,并希望使用Regex进行验证.
希望验证我的模型上的ID在提交时大于0.
我不知道MVC是如何相关的,但是如果你的ID是一个整数,那么这个BRE应该:
^[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以下的所有内容. )$ 最后,我们关闭括号并将正则表达式锚定到带有美元符号的行的末尾,就像插入符号固定到行的开头一样. 当然,如果您让编程语言以数字方式评估某些内容而不是尝试将其与正则表达式进行匹配,那么您将节省头痛和CPU. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |