Использование регулярных выражений для проверки адреса электронной почты

В настоящее время я использую следующее выражение для проверки адреса электронной почты пользователей:

^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$

Я использую этот код в нескольких PHP-скриптах, и он работает в большинстве случаев. Тем не менее, время от времени я получаю отзывы о том, что у юзеров возникают проблемы.

Какое самое лучшее решение вы видели для валидации user email?

Я встречал пару решений, которые используют функции состоящие из нескольких коротких regexp выражений, но, с точки зрения производительности, я бы предпочел бы одно длинное и сложное выражение вместо нескольких коротких.

Найдено 46 ответов:

Using a regular expression to validate an email address

http://stackoverflow.com/questions/201323/using-a-regular-expression-to-validate-an-email-address

Посмотреть решение →