检查电话号码是否相同以及最后7位数字是否相同的正则表达式

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

本文关键字:是否 数字 正则表达式 7位 电话号码 检查 最后      更新时间:2023-09-26

我试图创建一个匹配7-15位数字的正则表达式,该数字不能包含所有相同的数字和最后7位数字不能相同。我为数字做了两个正则表达式,所有的数字不能相同。我创建的正则表达式是:

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

对于最后七位数字不能相同,我所做的正则表达式是:

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

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

请建议如何做到这一点

似乎您可以在负向前看中使用交替操作符来检查2个条件:

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

参见regex演示。

:

  • ^ -字符串
  • 起始
  • (?!('d)'1+$|'d*('d)'2{6}$)——消极的超前失败的比赛如果从开始到结束的所有数字都是相同的(('d)'1+$ ('d)捕获一个数字到组1然后'1+匹配一个或多个值捕获在组1与$字符串末尾的检查),或者如果只有最后7是相同的(看到'd*('d)'2{6}$ 'd*匹配0 +数字,数字('d)捕捉到组2然后'2{6}匹配6值捕获在随后组2与字符串末尾的检查$)
  • (?:'d{7,15})? -可选组,匹配7到15位数字(或空字符串,因为它是可选的)
  • $ - end of string.