Регулярное выражение проверки email

Регулярное выражение проверки email

От автора: приветствую вас друзья. В этой статье мы рассмотрим различные варианты регулярных выражений для валидации emai, а также составим собственное регулярное выражение проверки email. Приступим?

Валидация адреса email — это, пожалуй, одна из наиболее распространенных задач при работе с регулярными выражениями. Это и не удивительно, поскольку email в современном вебе используется сплошь и рядом. Без него практически не обходятся при регистрации пользователей. И вот здесь нам нужно проверить, а соответствует ли введенная пользователем в поле строка формату email.

Сразу отмечу, что наиболее точный ответ даст только вариант с обратной связью. Суть его заключается в том, что по введенному адресу отправляется письмо со ссылкой, по которой пользователь должен перейти для подтверждения регистрации. Соответственно, регистрация будет завершена только в том случае, если пользователь ввел реальный email.

Это единственный 100% способ проверки email. Все прочие нам дадут лишь проверку на соответствие формату, не более. Но поскольку у нас есть задача составить регулярное выражение — давайте его составим. Тем более что его вполне можно использовать на стороне клиента, тем самым улучшив юзабилити вашей формы регистрации.

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

Страшно, не правда ли? Это шаблон для валидации email согласно стандарту. Я, конечно же, ни в коем разе не советую вам использовать такие шаблоны. Советую подыскать что-то попроще или составить шаблон самому. Собственно, пойду дальше — советую использовать максимально простой шаблон. Объясню почему.

Допустим вы составили или нашли правильный шаблон, который будет принимать только email, соответствующий формату. Например, я нашел вот такой:

Это первый попавшийся шаблон, который я нашел в сети. Как видим, этот шаблон работает достаточно криво, поскольку второй email был забракован. Хотя это вполне реальный email. А вот остальные, которые я придумал на ходу, были пропущены. Отсюда простой вывод: не заморачивайтесь с созданием универсальных шаблонов, поскольку пользователь вполне может придумать email. Используйте простейший шаблон, который будет проверять наличие знака @ в строке, а также наличие символов до и перед ней. К примеру, вот такая регулярка вполне сгодится:

Результат даже лучше предыдущего. Ну а на этом у меня сегодня все. Больше о регулярных выражениях вы можете узнать из нашего курса по регулярным выражениям. Удачи!

Хотите изучить регулярные выражения на PHP?

Прямо сейчас посмотрите 12-ти часовой курс по регулярным выражениям на PHP!

Смотреть курс

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Комментарии (2)

  1. olya_8855@mail.ru

    Есть ли необходимость в таких способах проверки, если можно сделать поле email в форме, или этого недостаточно?

    • Андрей Кудлай

      Этого недостаточно, поскольку тип поля легко изменить в консоли браузера. Есть и другие способы подделки формы. Вообще, доверять любым данным, которые пришли от клиента, нельзя — их непременно нужно проверять на сервере. В противном случае риск взлома сайта многократно возрастает.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree