Памятка для себя
Более-менее приемлемое регулярное выражение. Не все обрабатывает, но для рядовой формы отправки мейла сойдет:
ereg("^([a-zA-Z0-9_\-\.])+@(([0-2]?[0-5]?[0-5]\.[0-2]?[0-5]?[0-5]\.[0-2]?[0-5]?[0-5]\.[0-2]?[0-5]?[0-5])|((([a-zA-Z0-9\-])+\.)+([a-zA-Z\-])+))$", $email);
Не тестилось, но можно взглянуть еще сюда:
http://php.spb.ru/php/regexp.htmlhttp://php.spb.ru/other/mail.txt - монструозное выражение, соответствующее спецификации
Статья на хабре:
http://offbeatful.habrahabr.ru/blog/74206/#habracut Вариант для ленивых, с версии 5.2
filter_var('test@text.com', FILTER_VALIDATE_EMAIL) - вернет или мейл, если корректно, или false, если нет. Толком не тестил, бросил, когда пропустило больше 5 символов после последней точки.
Подсказка из спецификации:
If PHP >= 5.2 is not present, you can use the regular expression of the original PHP-c-file:
http://svn.php.net/viewvc/php/php-src/trunk/ext/filter/logical_filters.c