URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 5191
[ Назад ]

Исходное сообщение
"regexp   на проверку одного (или нескольких email через запятую)."

Отправлено tester , 27-Авг-07 16:56 
как сделать regexp
на проверку одного (или нескольких email через запятую).
Сделал вот так - но оно очень длинное и работает только если не более 2х адресов
'/^(([-!#$%&\'*+\\.\/0-9=?A-Z^_{|}~]+' . '@' . '([-0-9A-Z]+\.)+' . '([0-9A-Z]){2,4})(([,]\s)|(,?)))?([-!#$%&\'*+\\.\/0-9=?A-Z^_{|}~]+' . '@' . '([-0-9A-Z]+\.)+' . '([0-9A-Z]){2,4})*$/i', trim ($email))
Строки:
mail@gmail.com
mail1@gmail.com, mail2@gmail.com, mail3@gmail.com ....
должны подходить под данную регулярку.
Спасибо.

Содержание

Сообщения в этом обсуждении
"regexp   на проверку одного (или нескольких email через запя..."
Отправлено sargio , 27-Авг-07 22:16 
^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))(, [_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))*$


"regexp   на проверку одного (или нескольких email через запя..."
Отправлено IRoman , 28-Авг-07 07:23 
>^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))(, [_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3}))*$

Небольшая поправка. В таком виде выражение не будет обрабатывать адреса для доменов .info, т.к. стоит ограничение в 2 или 3 символа после точки на конце. Вот так будет вернее (кажется, самый длинный домен первого уровня - .museum):

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


"regexp   на проверку одного (или нескольких email через запя..."
Отправлено anonymous , 28-Авг-07 11:56 
http://search.cpan.org/~rjbs/Email-Address-1.888/lib/Email/A...

$Email::Address::addr_spec
    This regular expression defined what an email address is allowed to look like.

Не изобратейте, пожалуйста, велосипед... А то у нас появится еще один сайт, который не поддерживает такой, например, адрес: foobar+notes@gmail.com  Если у Вас есть ящик на gmail можете проверить сами, что email+label@domain.com -- вполне рабочий адрес, по RFC.