phone 数字的正则表达式,用于检查数字是否不同以及最后 7 位数字是否相同

Regex for phone numbers that check if numbers are not the same and last 7 digits are not same

我正在尝试创建一个匹配 7-15 位数字的正则表达式,该数字不能包含所有相同的数字并且最后 7 位数字不能相同。我为数字制作了两个正则表达式,所有数字都不能相同。我制作的正则表达式是:

/^(?!(.)+$)^(|[0-9]{7,15})$/.

最后七位数字不能相同,我制作的正则表达式是:

/^(?!.*(\d){6}\b)^[0-9]{0,15}$/.

但问题是我无法制作完全满足这两个条件的正则表达式,即所有数字不能包含所有相同的数字并且最后 7 位数字不能相同。

请建议如何做到这一点。

看来您可以在否定先行中使用交替运算符来检查 2 个条件:

^(?!(\d)+$|\d*(\d){6}$)(?:\d{7,15})?$

regex demo

详情:

  • ^ - 字符串开头
  • (?!(\d)+$|\d*(\d){6}$) - 如果所有数字从头到尾都相同((\d)+$,其中 (\d) 将数字捕获到第 1 组,然后 + 匹配第 1 组中捕获的一个或多个值,然后使用 $ 进行字符串结尾检查),或者如果只有最后 7 个相同(参见 \d*(\d){6}$,其中 \d* 匹配 0+数字,(\d) 将数字捕获到第 2 组,然后 {6} 匹配第 2 组中捕获的 6 个值,然后使用 $)
  • 进行字符串结尾检查
  • (?:\d{7,15})? - 匹配 7 到 15 位数字的可选组(或空字符串,因为它是可选的)
  • $ - 字符串结尾。