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

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

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

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

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

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