AFAIK, единственный хороший способ проверить электронную почту, чтобы отправить электронную почту и посмотреть, если пользователь возвращается на сайт, используя ссылку в этом электронном письме. Это то, что делают многие сайты.
Как вы указываете на ссылку на известное регулярное выражение мамонта, проверка всех форм адреса электронной почты является сложной, почти невозможной. Это так легко сделать неправильно, даже для простых писем стилей (я обнаружил, что слишком много сайтов отклоняют кепки в адресах электронной почты! И большинство старых регулярных выражений отклоняют TLD более чем из четырех букв!).
AFAIK, «Jean-Luc B. O'Grady» @ example.com и e = mc^2 @ [82.128.45.117] являются действительными адресами ... Хотя I-Made-It-Up @ Absurd- Домен -Name.info скорее всего недействителен.
Так или иначе, я просто хотел бы проверить, что у нас есть что-то уникальное @, что-то еще, и пойдите с ним: он поймает большинство ошибок пользователя (например, пустое поле или имя пользователя вместо адреса электронной почты).
Если пользователь хочет дать поддельный адрес, он просто даст что-то случайное, выглядящее правильно (см. На сайте@on.tv или [email protected]). И никакой валидатор не поймает опечатки ([email protected], а не [email protected]).
Если вы действительно хотите проверить электронные письма против полного RFC, я бы посоветовал использовать регулярные выражения для разделения вокруг @, а затем проверить отдельно локальное имя и доменное имя. Отдельный случай локального имени, начинающийся с «из других случаев и т. Д.» Отдельный случай доменного имени, начинающийся с [из других случаев и т. Д. Разделить проблему в небольших конкретных доменах и использовать регулярные выражения только в четко определенных, более простых случаях.
Это советы могут быть применены к много регулярных выражений использует, конечно ...
мы говорим по электронной почте или по электронной почте? – Sietse 2008-10-02 12:15:25
Я имел ввиду адрес электронной почты. Я исправил свой вопрос, чтобы это отразить. Спасибо – MrValdez 2008-10-03 04:50:05