Регулярное выражение для соответствия 6 цифрам, но без повторения - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь создать регулярное выражение, которое соответствует ровно 6 цифрам, но не работает для определенных чисел.

Это /^\d{6}$/ работает, что соответствует 6 цифрам. Но я хочу также следующие случаи:

123456 should fail
111111 should fail
222222 should fail 

, поэтому любая повторяющаяся цифра должна потерпеть неудачу, поэтому 3 условия:

  • Только 6 цифр
  • Не 123456
  • Не повторяющиеся числа

1 Ответ

1 голос
/ 31 октября 2019

Взгляните на это регулярное выражение:

^(?!(\d)\1{5}|123456)\d{6}$

Regex Demo

С самого начала строки мы делаем отрицательный взгляд на повторяющиеся цифры и 123456последовательность, после которой мы сопоставляем шесть цифр.

^                      # Line start
(?!                    # Negative lookahead
   (\d)\1{5}           # a digit and check that it does not repeat
   |                   # OR
   123456              # 123456 sequence
)   
\d{6}                  # Match 6 digits
$                      # End of line
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...