Как работает шаблон
| Часть | Значение |
|---|---|
^ | Начало строки |
[A-Za-z0-9._%+-]+ | Локальная часть: один или несколько символов — букв, цифр, точек, подчёркиваний, знаков процента, плюса или дефиса |
@ | Символ @ буквально |
[A-Za-z0-9.-]+ | Доменное имя, включая поддомены |
\. | Точка буквально перед доменом верхнего уровня |
[A-Za-z]{2,} | Домен верхнего уровня: две или более букв (com, io, museum) |
$ | Конец строки |
Примеры кода
JavaScript
const re = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}', value))PHP
preg_match('/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/', $value) === 1;
Примечания и ограничения
Это практичный шаблон, который используют большинство форм регистрации. Он принимает некоторые технически странные адреса (две точки подряд) и отклоняет редкие допустимые (локальные части в кавычках, домены-IP-адреса). Единственный реальный способ проверить email — отправить письмо со ссылкой для подтверждения. В HTML-формах <input type="email"> даёт встроенную проверку браузера бесплатно.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.