Проверка email регулярным выражением JavaScript


Регулярные выражения — это формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов. По сути это строка-образец (по-русски её часто называют «шаблоном», «маской»), состоящая из символов и метасимволов и задающая правило поиска.

В нашем случае мы рассмотрим регулярное выражение проверяющее валидность электронной почты. При создании электронной почты мы сталкиваемся с рядом ограничений по возможности введения символов. Единственно возможными символами являются латинский алфавит включая буквы, цифры, точки, дефисы и знаки подчеркивания. К тому же символы «-«, «.», «_» не могут использоваться 2 раза подряд.Встречайте! Вот наше регулярное выражение:

var a = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/;

/ / — в эти слэши записывается регулярное выражение.
^ — обозначает начало входных данных.
$ — обозначает конец входных данных.
\w — найдет любой словесный (латинский алфавит) символ, включая буквы, цифры и знак подчеркивания.
+ — обозначает повторение 1 или более раз
[] — находит любой из перечисленных внутри символов.
? — обозначает, что элемент может как присутствовать, так и отсутствовать.
()* — обозначает что конструкция внутри круглых скобок может не произойти ни разу, либо сколько угодно раз.
@ — символ «собака» или как правильно «ат». В нашем регулярном выражении так и пишется, никаких сокращений не используется.

Разберем наше регулярное выражение по частям. Смысл заключается в том, чтобы валидацию смог пройти e-mail такого вида s.w.a.t_agent-007@u.s.a-agents.travel:
\w+ — означает что в начале e-mail адреса могут идти символы и их может быть сколько угодно, но должен быть хотя бы один символ.
([\.-]?\w+)* — означает что после символов «.» или «-«, которые могут как присутствовать так и отсутствовать, идет любой словесный символ, причем эта конструкция внутри круглых скобок может не произойти ни разу, либо сколько угодно раз.
(\.[a-zA-Z]{2,6})+ — эта запись означает, что в имени домена первого уровня используются только текстовые символы. Их количество должно быть от 2 до 6, и повторяться они могут один или несолько раз. Это сделано для того, чтобы мы могли использовать домены такого вида «info@leningrad.spb.ru«.