Как проверить email адрес в Javascript — валидация RFC 5322
Существует множество способов сделать валидацию email адреса в javascript. Но как по мне, лучший из них это использовать регулярные выражения.
Последний официальный стандарт валидации эмейл адресов называется RFC 5322. Он описывает синтаксис, которого должен придерживаться реальный адрес электронной почты.
Следующее регулярное выражение соответствует этому стандарту.
([-!#-'*+/-9=?A-Z^-~]+(\.[-!#-'*+/-9=?A-Z^-~]+)*|"([]!#-[^-~ \t]|(\\/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
А вот и функция, которая принимает строку как аргумент с адресом электронной почты и проверяет валидный ли он.
const validateEmail = ( email ) => {
const expression =
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return expression.test( String(email).toLowerCase() );
}
Но не забывайте, что валидация на javascript на стороне фронта — это не лучший вариант. Всегда проверяйте данные на стороне сервера, на бэкенде.