Задать вопрос
@SNina
Отчаянно пытаюсь научиться писать хорошие сайты

Как в регулярных выражениях написать, что строка должна начинаться с букв и не может начинаться с нижнего подчеркивания?

Нужно в логине пользователя сделать проверку, - логин должен начинаться с латинских букв (большие и маленькие), может включать кроме букв цифры, тире и точку. И он не должен включать другие символы, в т.ч. нижнее подчеркивание. Мое регулярное выражение, - /^[a-zA-z^_][a-zA-z0-9-.]*[^ _!/+*()]+$/ не дает начинать логин с цифр и символов *-+/!)(
Но если я напишу в начале слова или в середине слова нижнее подчеркивание, - моя регулярка это пропускает.
Т.е. login_ не пропускает, а login_25 или _login пропускает.
Как это исправить?
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой 10 комментариев
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
/^[a-z][a-z0-9.-]*$/i
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alexalexes
Сделайте тремя отдельными элементарными регулярками - поддерживать такой код будет проще намного:
if(       /^[a-zA-z]+/.test(login)  // проверка первого символа
   && /[a-zA-z0-9\-\.]+/.test(login)  // проверка входа символов в допустимый алфавит
   && !(/[^a-zA-z0-9\-\.]+/.test(login))  // проверка выхода символов из допустимого алфавита
   )
{
  // комплексная проверка пройдена!
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы