如何使用正则表达式禁止连续五位数字或更多数字?

How to disallow consecutive five digits and more using regex?

如果字符串包含连续的五位数字以及更多数字,我想禁止:12345、11111、123456。

我已成功使用以下正则表达式禁止字符串中的任何数字:

/^[^0-9]+$/

我创建了一个 sandbox demo。我想禁止五个连续 numbers/digits。目前它不允许任何数字。

这是一个测试正则表达式的好网站:

https://regex101.com/

你可以试试这个:

/^[0-9]{5,}$/

5 个或更多数字将通过正则表达式。

匹配5个连续数字的正则表达式是\d{5}

禁止这样的字符串(实际上是连续的数字还要多), 在源字符串的 任何位置 处,应放置此正则表达式:

  • 否定查找中 (?!...)
  • 在正则表达式匹配任意数量(零个或多个)的任意字符之后 .*? (不情愿的变种)。

在这个否定查找之后,应该有一个匹配整个字符串的正则表达式: .+(我假设你对空字符串不感兴趣,所以我放了+, 不是 *).

上面的整个正则表达式应该以 ^ 开头,然后是 $ 锚点。

所以整个正则表达式可以是:^(?!.*?\d{5}).+$