Regex для Минимума 1 символа и 1 числа, запрещают 4 последовательных числа и символы и имеют минимальную длину 8 - PullRequest
0 голосов
/ 11 января 2019

Я хочу создать регулярное выражение для

  • Минимум 1 символ и 1 цифра в пароле
  • Предотвращение «4 последовательных символов» должно быть на месте. Например: 1234, abcd
  • Минимум 8 символов и максимум 20

Я пытался:

^(?!.*(.)\1\1)(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{8,20}$

^(?!.*?(?:0(?:12|98)|123|234|3(?:45|21)|4(?:56|32)|5(?:67|43)|6(?:78|54)|7(?:89|65)|876|987))(?!.*?(.)\\1{2})[0-9]{8}$

^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,20}$

^(?=.*[0-9])(?=.*[a-zA-Z])(?=\S+$).{8,20}$

Но не удалось получить результат за одно регулярное выражение. Пожалуйста, помогите мне, если у кого-то есть идея для этого. Заранее спасибо!

1 Ответ

0 голосов
/ 11 января 2019

Я не думаю, что регулярное выражение - правильный инструмент для работы здесь.

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

Вы можете проверить и исключить результаты, содержащие:

abcd | bcde | cdef | defg | efgh | fghi | ghij | hijk | ijkl | jklm | klmn | lmno | mnop | nopq | opqr | pqrs | qrst | rstu | stuv | tuvw | uvwx | vwxy | wxyz | 0123 | 1234 | 2345 | 3456 | 4567 | 5678 | 6789

Но вам определенно не следует.

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