Проверяем e-mail на валидность на PHP/jQuery
Сегодня я хотел бы поговорить с вами немного о валидности. Что это такое? Это проверка введенной информации согласно какому-либо шаблону, маске. Все мы знаем, что мобильный телефон для России начинается с +7, а e-mail должен содержать в себе знак @.
Если какое-то из условий не выполнено, то логично уведомить об этом пользователя, чтобы в последующем не получить от него ошибочных данных. Сегодня я покажу вам, как двумя способами проверить корректность введенной электронной почты пользователя.
Проверка валидности e-mail на PHP
Итак, мы полагаем, что в какую-то переменную нам поступает e-mail пользователя. Наша задача – проверить ее корректность, и если в адресе имеется ошибка – сообщить пользователю об этом.
Реализация следующая:
<?php
$email = "test#gmail.com"; // E-mail пользователя
$pattern = "|^([a-z0-9_.-]{1,20})@([a-z0-9.-]{1,20}).([a-z]{2,4})|is";
if(preg_match($pattern, strtolower($email))) {
// Действие, если e-mail корректен
} else {
// Действие, если e-mail некорректен
}
?>
Соответственно, если e-mail некорректен, вы можете вывести необходимое сообщение и остановить дальнейшее выполнение скрипта (в нашем случае – отправку) до тех пор, пока не будет указан правильный e-mail.
Проверка валидности e-mail на jQuery
Поскольку jQuery – клиентский скрипт (то есть выполняется на стороне пользователя), то здесь мы рассмотрим live-пример, где при введении e-mail в некоторое поле будет мобильно происходить проверка его на корректность.
У нас есть поле для ввода e-mail:
<input type="email" name="email" id="valid_email" />
Теперь напишем небольшой скрипт, который будет проверять корректность заполненного поля после того, как оно потеряло фокус:
<script>
$("#valid_email").blur(function() {
var email = $(this).val(); // Получаем e-mail пользователя
var pattern = /^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i;
if(pattern.test(email)) {
// Действие, если e-mail корректен
} else {
// Действие, если e-mail некорректен
}
});
</script>
По желанию, в случае некорректного ввода можно вывести необходимое сообщение или, например, заблокировать кнопку формы.