Удалить повторяющиеся строки   •   Online-инструменты
3 701 просм
1 комм
Поделиться:

Проверяем 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}$/i;

		if(pattern.test(email)) {
		
			// Действие, если e-mail корректен
			
		} else {
		
			// Действие, если e-mail некорректен
			
		}
		
	});
	
</script>

По желанию, в случае некорректного ввода можно вывести необходимое сообщение или, например, заблокировать кнопку формы.

1
комментарий
RegEx Golf
17.07 в 23:53
{2,4} в regex для TLD - ужасный рецепт, уже давно существуют корневые зоны и длиннее info, например online или party.
  • 0
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.