RegEx скомпилировано с RFC 2822, 3.6.2

У меня проблема с тем, что SwiftMailer отклоняет электронные письма, содержащие точки либо в начале, либо в конце адреса (аналогично нескольким точкам внутри). Я хотел бы, чтобы мое приложение замечало такие проблемы.

Каким должно быть регулярное выражение для фильтрации неправильных адресов электронной почты? (под неправильным я подразумеваю те, которые не собраны со всем стандартом)

2 ответа

function check(mail) {
  return !mail.match(/^\.|\.$/);
}
check('amshaegar@example.org'); // true
check('amshaegar@example.org.'); // false
check('.amshaegar@example.org'); // false

Функция check ожидает почтовый адрес в виде строки и проверяет, нет ли точки (.) В начале или конце.

Для определения нескольких точек (...) ваша функция будет выглядеть так:

function check(mail) {
  return !mail.match(/^\.|\.{2,}|\.$/);
}

Следующее найдет точку в начале строки или в конце строки...

^\.|\.$
Другие вопросы по тегам