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

Как можно улучшить регулярное выражение для проверки логина пользователя, чтобы оно не пропускало случаи, когда логин начинается с символа "_", но при этом запрещало использование других символов, таких как "!", "/", "+", "*", "(", ")"?
  • 9 июля 2024 г. 12:42
Ответы на вопрос 3
Для указания условия, чтобы строка начиналась с буквы, но не могла начинаться с нижнего подчеркивания, можно использовать следующее регулярное выражение:

```regexp
^[A-Za-z][A-Za-z0-9_]*$
```

Для улучшения регулярного выражения для проверки логина пользователя, чтобы оно не пропускало случаи, когда логин начинается с символа "_", но при этом запрещало использование других символов, таких как "!", "/", "+", "*", "(", ")", можно использовать следующее регулярное выражение:

```regexp
^(?!_)(?!.*[!/+*()])\w+$
```

Это выражение проверит, что логин не начинается с символа "_", не содержит символов "!" "/", "+", "*", "(", ")" и состоит только из букв, цифр и подчеркивания.
Сделайте тремя отдельными элементарными регулярками - поддерживать такой код будет проще намного: 
if(       /^[a-zA-z]+/.test(login)  // проверка первого символа
   && /[a-zA-z0-9\-\.]+/.test(login)  // проверка входа символов в допустимый алфавит
   && !(/[^a-zA-z0-9\-\.]+/.test(login))  // проверка выхода символов из допустимого алфавита
   )
{
  // комплексная проверка пройдена!
}
/^[a-z][a-z0-9.-]*$/i
Похожие вопросы