Regex, чтобы разрешить буквенно-цифровой, а не только числовой с минимум 6 символов и максимум 100 - PullRequest
1 голос
/ 03 июня 2019

Требуется не менее 6 символов и не более 100 символов.

Все цифры не допускаются -111111 Разрешены буквенные цифры - abc123 Допускаются специальные символы -_ @!Разрешены только буквы - abcdefgh

AAAAAA =>OK
111111=> NOT OK
AAA123!=>OK
AAA12 => NOT ok minimum 6 characters 
11111_ =>OK

Я пытался с этим регулярным выражением ^ [a-zA-Z] [a-zA-Z0-9] * $ .. это работает, но я не могу получить минимум 6или максимум 100 в этом.

^ [a-zA-Z] [a-zA-Z0-9] * $

Все цифры не допускаются -111111 Разрешены буквенные числа - abc123 Разрешены специальные символы -_@!Разрешены только буквы - abcdefgh

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Ваш шаблон начинается с совпадения [a-zA-Z].Если не требуется, чтобы a-zA-Z был в начале, но только по крайней мере 1 раз во всем матче, если это поддерживается, вы можете использовать положительный прогноз, чтобы установить длину 6 - 100.

Тогда вы можете убедиться, что совпадение по крайней мере 1 раз по азимуту или азимуту или по специальному знаку между совпадением 0+ раз [a-zA-Z0-9_@!-]* слева и справа:

^(?=.{6,100}$)[a-zA-Z0-9_@!-]*[a-zA-Z_@!-][a-zA-Z0-9_@!-]*$
  • ^Начало строки
  • (?=.{6,100}$) Укажите, что справа - 6 - 100 символов, за исключением новой строки
  • [a-zA-Z0-9_@!-]* Совпадение 0+ раз, что указано в классе символов
  • [a-zA-Z_@!-] Соответствует символу az или AZ или специальному символу без цифры
  • [a-zA-Z0-9_@!-]* Соответствует 0+ раз тому, что указано в классе символов
  • $ Конец утверждениястрока

Regex demo

Другой вариант - положительный и отрицательный взгляд вперед, 1 для проверки длины и другой (?!\d+$) для проверкиесли совпадение не состоит только из цифр:

^(?=.{6,100}$)(?!\d+$)[a-zA-Z0-9_@!-]+$

Regex demo

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

Вы можете определить диапазон, чтобы помочь с вашими требованиями к длине.

^[a-zA-Z][\w\d!_\-@]{5,99}$

Первый символ является обязательным, а остальные символы имеют длину от 5 до 99.

Как прокомментировал г-н Артнер, вы могли бы уточнить ваши потребности, чтобы мы могли дать лучший ответ.

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