Регулярное выражение для валидации имени пользователя

168
15 июля 2022, 04:10

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

Вот что я пытался сделать:

/[^0-9][a-zA-Z0-9\-]*$/

Заранее спасибо!

Answer 1

Попробуйте вот это выражение: ^[a-zA-Z][a-zA-Z0-9-]+$. Объяснение:

  1. Тут ^ обозначает начало строки
  2. $ - конец строки
  3. Далее в [] идет перечисление тех символов, что должны быть в начале, так как стоят после ^
  4. a-zA-Z - это всего символы английского алфавита во всех регистрах
  5. После этого идут остальные символы в [a-zA-Z0-9-].
  6. В конце ставится + так как необходимо иметь от одного символа, чтобы ник был как минимум 2 символа. Если это не надо, то замените + на *

Если все правильно понял в вашем вопросе, то решение должно сработать. Советую пользоваться веб-сервисом regex101.com, где есть подсказки и автоматическая валидация результата

Answer 2

У вас все нормально. За исключением [^0-9]. Лучше заменить на [a-z] и поставить маркер начала строки ^, получится так:

 '/^[a-z][a-z0-9-]*$/i'

Знак ^ означает начало строки. Знак $ означает конец строки. Имея в одной регулярке и ^ и $ строка пройдёт тест если будет соответствовать регулярке полностью от начала до конца.

Знак i в конце - это флаг регистровой независимости. То есть a будет означать как a так и A.

READ ALSO
Как сменить формат даты при отправке ajax?

Как сменить формат даты при отправке ajax?

Всем привет! Как при отправке ajax запроса, либо при его получении обработчиком изменить формат даты? input type="date" принимает дату в формате...

159
grpc забсрок к докеру

grpc забсрок к докеру

Привет всем у меня есть dockerfile

233
Невозможно удалить объект, поскольку он не был найден в ObjectStateManager

Невозможно удалить объект, поскольку он не был найден в ObjectStateManager

Только начинаю взаимодействие с БД в С#, наткнулся вот на такую проблему, версия EF 62

234
Steamworks: Проверка сборки не удалась

Steamworks: Проверка сборки не удалась

Сделал 2D игру, на С# и MonogameОтправил её в steam на проверку

308