Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > регулярные выражения для email


Автор: bagos 14.1.2011, 12:42
для проверки корректности введенного email буду использовать регулярки, вопрос стоит в том есть ли какие доки на тему какой вид могут иметь email адреса, скажем лично я не знаю может в начале адреса стоит знак "-" [email protected] хоть и не разу не видел таких адресов, но кто знает что может быть...
Если есть какие то правила или инфа прошу в студию. Спасибо!

Автор: gta4kv 14.1.2011, 13:02
Код

var_dump(filter_var('[email protected]', FILTER_VALIDATE_EMAIL));

Автор: Evghenusi 14.1.2011, 14:49
Код

if (preg_match("|([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})|is", $mail))


Цитата(bagos @  14.1.2011,  12:42 Найти цитируемый пост)
вопрос стоит в том есть ли какие доки на тему какой вид могут иметь email адреса, скажем лично я не знаю
 посмотри на разных почтовых службах, что за символы они разрешают вводить при регистрации, они ведь знают что разрешают  smile 

Автор: MoLeX 14.1.2011, 15:02
bagos, так по стандарту надо http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

Добавлено через 3 секунды
 smile 

Автор: bagos 14.1.2011, 19:08
Спасибо, помогло.

Автор: bagos 14.1.2011, 20:51
Получилось \w[-.\w]*[\w]@[\w][-.\w]*[\w]\.[a-z]{2,5}
Не уверен что оно во всех случаях корректно работает, можете подсказать какие некорректные адреса пропустит данное выражение, спасибо!

Автор: bagos 14.1.2011, 21:11
несмотря на то что в начале \w всего равно проскакивают спец знаки, почему?

Автор: enoff 14.1.2011, 23:36
^ - начало строки.
$ - конец строки.

Автор: bagos 15.1.2011, 00:05
использую \bв начале и конце, просто тут не указал

Автор: enoff 15.1.2011, 00:44
\b - это конец слова. Конец слова, это все кроме букв, цифр, дефиса и подчеркивания вроде. Потому спецсимволы сюда тоже подходят.
а ^ - начало текста.
$ - конец текста.
если модификатор m - то начало и конец строки.

Автор: cutwater 15.1.2011, 02:41
bagos, материал к изучению

http://stackoverflow.com/questions/201323/what-is-the-best-regular-expression-for-validating-email-addresses
http://fightingforalostcause.net/misc/2006/compare-email-regex.php


Автор: bagos 15.1.2011, 19:20
Спасибо вам, очень помогло!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)