Регулярное выражение для проверки email
Для базовой проверки email на клиенте используйте простое регулярное выражение, которое проверяет пробелы, наличие @ и точки в домене. Оно помогает отсеять явные опечатки, но не доказывает, что адрес существует или принадлежит пользователю.
Практичная базовая проверка
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
console.log(emailPattern.test('dev@example.com')); // true
console.log(emailPattern.test('bad address')); // falseДля регистрации отправьте письмо со ссылкой подтверждения. Только подтверждение владения адресом проверяет, что пользователь может получить почту.
Проверка формата в Python
import re
EMAIL_RE = re.compile(r"^[^\s@]+@[^\s@]+\.[^\s@]+$")
print(bool(EMAIL_RE.fullmatch("dev@example.com"))) # TrueРегулярка здесь намеренно короткая: синтаксис email допускает множество редких случаев, которые сложный шаблон часто обрабатывает неверно.
Нужно проверить | Подход |
|---|---|
Похожа ли строка на адрес | Простая регулярка |
Соответствует ли формату на сервере | Валидатор библиотеки и ограничения приложения |
Доступен ли адрес владельцу | Письмо с подтверждением |
Почему выражение не проверяет существование почты?
Синтаксис не сообщает, существует ли домен, ящик и может ли человек получить письмо. Для этого нужен процесс подтверждения.
Подойдёт ли шаблон для всех email?
Он подходит для обычной клиентской подсказки и пропускает многие распространённые адреса, но не является полной реализацией стандартов. Серверная проверка и подтверждение остаются необходимыми.