Regex (шаблон ввода HTML) для имени пользователя - PullRequest
0 голосов
/ 19 октября 2018

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

Единственное, что я могу понять, это

[A-Za-z0-9]{6,20}

Но когда я пытаюсь добавить больше к шаблону, он, кажется, не работает.

ПРИМЕЧАНИЕ Это использует атрибут шаблона ввода HTML.Я был бы признателен за помощь в этом, но я также был бы признателен, если бы кто-то смог сломать решение для меня, чтобы я мог понять его немного лучше.

  • Имя пользователя может содержать прописные / строчные буквы
  • Имя пользователя может содержать цифры
  • Имя пользователя может содержать подчеркивание, дефис или точку
  • Имя пользователя не может содержать пробелы
  • Имя пользователя не может содержать специальные символы
  • Имя пользователядолжно быть длиной от 6 до 20 символов

Я пробовал что-то вроде этого:

[A-Za-z0-9_-]{6,20}\S

Я чувствую, что я вроде как там, но не совсем там.

1 Ответ

0 голосов
/ 19 октября 2018

Должно работать следующее:

[A-Za-z0-9\-_\.]{6,20}

Чтобы разбить его:

  • A-Z любой символ верхнего регистра
  • a-z любой строчный символ
  • 0-9 любое число
  • \- дефис (экранируется символом \ в зависимости от того, чтопорядок его размещения)
  • . период

Дефис не должен быть экранирован в зависимости от заказа:

[A-Za-z0-9-_.]{6,20}

или

[A-Za-z0-9_.-]{6,20}

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

[A-Za-z0-9_-.]{6,20}

В шаблоне, который вы использовали \Sсоответствует любому символу, который не является пробелом, поэтому он может ожидать дополнительный символ после строки 6-20 символов.Поскольку в квадратных скобках нет пробелов (\s), пропуск означает, что пробелы не допускаются;то же самое для специальных символов.

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