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

Категория: Регулярные выражения · Язык: JavaScript · Обновлено:

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

Практичная базовая проверка

JavaScript
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
console.log(emailPattern.test('dev@example.com')); // true
console.log(emailPattern.test('bad address')); // false

Для регистрации отправьте письмо со ссылкой подтверждения. Только подтверждение владения адресом проверяет, что пользователь может получить почту.

Проверка формата в Python

Python
import re

EMAIL_RE = re.compile(r"^[^\s@]+@[^\s@]+\.[^\s@]+$")
print(bool(EMAIL_RE.fullmatch("dev@example.com")))  # True

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

Нужно проверить

Подход

Похожа ли строка на адрес

Простая регулярка

Соответствует ли формату на сервере

Валидатор библиотеки и ограничения приложения

Доступен ли адрес владельцу

Письмо с подтверждением

Почему выражение не проверяет существование почты?

Синтаксис не сообщает, существует ли домен, ящик и может ли человек получить письмо. Для этого нужен процесс подтверждения.

Подойдёт ли шаблон для всех email?

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