如何使用正则表达式禁止连续五位数以上?

时间:2018-06-12 09:22:43

标签: javascript regex antd

如果字符串包含连续的五位数字,我想禁止它,例如:12345,11111,123456。

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

/^[^0-9]+$/

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

2 个答案:

答案 0 :(得分:2)

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

禁止这样的字符串(实际上,甚至更连续的数字), 在源字符串中的任意位置,应该放置此正则表达式:

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

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

上面的整个正则表达式应该以{{1​​}}开头,后跟^个锚点。

所以整个正则表达式可以是:$

答案 1 :(得分:1)

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

https://regex101.com/

你可以试试这个:

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

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