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})?$
详情:
^
- 字符串开头
(?!(\d)+$|\d*(\d){6}$)
- 如果所有数字从头到尾都相同((\d)+$
,其中 (\d)
将数字捕获到第 1 组,然后 +
匹配第 1 组中捕获的一个或多个值,然后使用 $
进行字符串结尾检查),或者如果只有最后 7 个相同(参见 \d*(\d){6}$
,其中 \d*
匹配 0+数字,(\d)
将数字捕获到第 2 组,然后 {6}
匹配第 2 组中捕获的 6 个值,然后使用 $
) 进行字符串结尾检查
(?:\d{7,15})?
- 匹配 7 到 15 位数字的可选组(或空字符串,因为它是可选的)
$
- 字符串结尾。
我正在尝试创建一个匹配 7-15 位数字的正则表达式,该数字不能包含所有相同的数字并且最后 7 位数字不能相同。我为数字制作了两个正则表达式,所有数字都不能相同。我制作的正则表达式是:
/^(?!(.)+$)^(|[0-9]{7,15})$/
.
最后七位数字不能相同,我制作的正则表达式是:
/^(?!.*(\d){6}\b)^[0-9]{0,15}$/
.
但问题是我无法制作完全满足这两个条件的正则表达式,即所有数字不能包含所有相同的数字并且最后 7 位数字不能相同。
请建议如何做到这一点。
看来您可以在否定先行中使用交替运算符来检查 2 个条件:
^(?!(\d)+$|\d*(\d){6}$)(?:\d{7,15})?$
详情:
^
- 字符串开头(?!(\d)+$|\d*(\d){6}$)
- 如果所有数字从头到尾都相同((\d)+$
,其中(\d)
将数字捕获到第 1 组,然后+
匹配第 1 组中捕获的一个或多个值,然后使用$
进行字符串结尾检查),或者如果只有最后 7 个相同(参见\d*(\d){6}$
,其中\d*
匹配 0+数字,(\d)
将数字捕获到第 2 组,然后{6}
匹配第 2 组中捕获的 6 个值,然后使用$
) 进行字符串结尾检查
(?:\d{7,15})?
- 匹配 7 到 15 位数字的可选组(或空字符串,因为它是可选的)$
- 字符串结尾。