Код выражения:
/^[a-zA-Z0-9.!#$%&’*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/
Пример работы в JavaScript:
‘e@r.ru‘.match(/^[a-zA-Z0-9.!#$%&’*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/)
Если адрес валидный, то нам возвращается массив, где под нулевым индексом лежит проверенный адрес электронной почты.
Если передаваемый адрес не проходит проверку, то нам возвращается null.
Информационные ссылки
Стандарт HTML — Раздел «4.10.5.1.5 Email state (type=email)» — https://html.spec.whatwg.org/#valid-e-mail-address
Стандарт RFC 5322 — Формат интернет-сообщения (IMF)