Подскажите, пожалуйста, как должно выглядеть регулярное выражение для проверки имени пользователя, которое не должно начинаться с цифры и должно состоять только из букв, цифр и символа "-".
Вот что я пытался сделать:
/[^0-9][a-zA-Z0-9\-]*$/
Заранее спасибо!
Попробуйте вот это выражение: ^[a-zA-Z][a-zA-Z0-9-]+$. Объяснение:
^ обозначает начало строки$ - конец строки[] идет перечисление тех символов, что должны быть в начале, так как стоят после ^a-zA-Z - это всего символы английского алфавита во всех регистрах[a-zA-Z0-9-].+ так как необходимо иметь от одного символа, чтобы ник был как минимум 2 символа. Если это не надо, то замените + на *Если все правильно понял в вашем вопросе, то решение должно сработать. Советую пользоваться веб-сервисом regex101.com, где есть подсказки и автоматическая валидация результата
У вас все нормально. За исключением [^0-9]. Лучше заменить на [a-z] и поставить маркер начала строки ^, получится так:
'/^[a-z][a-z0-9-]*$/i'
Знак ^ означает начало строки.
Знак $ означает конец строки.
Имея в одной регулярке и ^ и $ строка пройдёт тест если будет соответствовать регулярке полностью от начала до конца.
Знак i в конце - это флаг регистровой независимости. То есть a будет означать как a так и A.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей