_
- это не дефис, это подчеркивание. Дефис это -
Если можно начинать адрес электронной почты с подчеркивания, добавьте _
к обоим классам символов, которые появляются до @
^[-a-zA-Z0-9_][-.a-zA-Z0-9_]*@...
Если идентификатор электронной почты не может начинаться с _
, добавьте его только во второй класс символов:
^[-a-zA-Z0-9][-.a-zA-Z0-9_]*@...
Тем не менее, у вашего регулярного выражения есть пара проблем:
- Принимает адреса электронной почты, начинающиеся с дефиса; это предназначено? Если нет, удалите
-
из первого класса символов, чтобы сделать его [a-zA-Z0-9]
- Он принимает последовательные периоды после первого символа, тем самым делая
3...@example.com
действительным идентификатором - это статус за дизайном ?
Спецификация RFC для адреса электронной почты довольно сложна. См. эти потоков для получения дополнительной информации. Также не забудьте проверить один-единственный perfect и официальное регулярное выражение для проверки адресов электронной почты (имейте в виду, что вы можете найти его на чуть-чуть дольше, чем предполагалось бы здравомыслием)