Предотвратить отформатированный номер телефона с 10 повторных номеров RegEx - PullRequest
1 голос
/ 09 июня 2019

У меня есть номер телефона regex, который должен быть в формате nnn-nnn-nnnn или n-nnn-nnn-nnnn (n для номера).

регулярное выражение для этого

^(1-)?\d{3}-\d{3}-\d{4}$

Мне нужно запретить номера телефонов со всеми 1, всеми 2, всеми 3, и т. Д.

У меня есть шаблон, который будет проходить, если есть 10 с одним и тем же символом, но я хочу наоборот, не может быть 10 с одним и тем же символом, и мне нужно вставить это в отрицательный взгляд, чтобы я мог отделить приведенный выше шаблон из шаблона номера телефона, и скажите «примените его к шаблону x, каким бы ни был шаблон x, он не может содержать 10 или более символов».

 /(.)\1{10,}/  

Попытка решения:

1.) Я вкладываю нижеприведенный шаблон в круглые скобки, так что это все в 1-й группе захвата

^(1-)?\d{3}-\d{3}-\d{4}$ 

2.) Вставить ниже шаблон в отрицательный взгляд, скобки удалены из первого шаблона, так как я хочу, чтобы первая группа захвата находилась за пределами отрицательного просмотра

.\1{10,} 

Что я получаю в итоге:

(?!.\1{10,})(^(1-)?\d{3}-\d{3}-\d{4}$)

ожидаемый результат: 111-111-1111 не удалось фактический: 111-111-1111 проходов

1 Ответ

0 голосов
/ 09 июня 2019

Внутри негативного взгляда, захватить цифру, затем многократно соответствовать -*\1.Если это соответствует 9 (или более) раз, то у вас есть 10 повторяющихся чисел:

^(?!(\d)(?:-*\1){9})((1-)?\d{3}-\d{3}-\d{4}$)

https://regex101.com/r/BcfMvW/1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...