正则表达式不允许字符串中有 2/3/4 个连续的零
Posted
技术标签:
【中文标题】正则表达式不允许字符串中有 2/3/4 个连续的零【英文标题】:Regular expression to not allow 2/3/4 consecutive zeros in string 【发布时间】:2015-06-30 05:21:09 【问题描述】:我想验证我的文本字段:不想在我的文本框中允许以下条目:
100123456- 2 个重复零,最大长度为 9
120005689- 3 个重复零最大长度 9
100005689- 4 个重复零最大长度 9
我试过下面的正则表达式:
/^(?!.*(.)\1)(^[1-9][0-9]8$)/
它有效,但它也不允许重复其他数字。 eg: 114564568- 因为 1 是重复的
我只想要 Zeros。如果有连续的零则显示错误。
请帮忙。
提前致谢
【问题讨论】:
【参考方案1】:您可以使用以下正则表达式来禁止 2 个连续的 0
s:
^(?!.*00)([1-9][0-9]8)$
或其他版本:
^(?!.*02)([1-9][0-9]8)$
任何以0
以外的数字开头且没有00
的9 位数字都将通过。实际上,如果我们不允许 2 个连续的零,我们将不会同时允许 3 个和 4 个连续的零。
见demo。
【讨论】:
不客气。您的初始正则表达式比您需要的更复杂,所以我只是将其降级 :) 此外,没有必要在前瞻之后重复^
锚,因为我们仍处于字符串的开头时间。以上是关于正则表达式不允许字符串中有 2/3/4 个连续的零的主要内容,如果未能解决你的问题,请参考以下文章