Проверка регулярного выражения имени пользователя с необязательной точкой и заданным c ограничением строки - PullRequest
0 голосов
/ 10 февраля 2020

Я пишу выражение для проверки имени пользователя со следующими требованиями:

  • длина от 6 до 20,
  • должно начинаться с буквы,
  • разрешены числа,
  • точка необязательна или разрешена только одна.
  • не должен заканчиваться точкой

Пробовал, но не работал:

^(([a-zA-Z])(\.{0,1})([a-zA-Z0-9]*)){6,20}$

другой вариант

^([a-zA-Z]+([\\.]?)+([a-zA-Z0-9]*)){6,20}$

1 Ответ

1 голос
/ 10 февраля 2020

Вы можете использовать выражение, которое будет соответствовать букве в начале и 5–19 буквам, цифрам или точкам, которые должны появляться только в середине строки.

Вы можете использовать

^(?=.{5,19}$)(?=[A-Za-z])[A-Za-z0-9]+(?:\.[A-Za-z0-9]+)*$

См. Демоверсию regex .

Подробности

  • ^ - начало строки
  • (?=.{5,19}$) - положительный прогноз, соответствующий строке, содержащей любые от пяти до девятнадцати символов, кроме символов разрыва строки
  • (?=[A-Za-z]) - первый символ должна быть буквой ASCII
  • [A-Za-z0-9]+ - одна или несколько букв или цифр
  • (?:\.[A-Za-z0-9]+)* - 0 или более повторений
    • \. - точка
    • [A-Za-z0-9]+ - одна или несколько букв или цифр
  • $ - конец строки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...