Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проверка синтаксической корректности e-mail

455
23 марта 2003 года
vitorg
55 / / 20.05.2000
Как проверить полностью (по RFC) корректность e-mail адреса с помощью регулярного выражения (Perl)? Или, если кто знает, скажите ресурсы где можно прочитать про формат адреса email и допустимых символах в нём (желательно русскоязычные).
250
23 марта 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by vitorg
Как проверить полностью (по RFC) корректность e-mail адреса с помощью регулярного выражения (Perl)? Или, если кто знает, скажите ресурсы где можно прочитать про формат адреса email и допустимых символах в нём (желательно русскоязычные).


Вот кака я это проверяю на php:
if (!eregi('^([a-z0-9_]|\\-|\\.)+'.'@'.'(([a-z0-9_]|\\-)+\\.)+'.'[a-z]{2,4}$', $email))
Янадеюсь тут видно, из регулярного вырожение как может выглядить мыло :)
А вообще я бы изходил из конструкуии:
нечто1@нечто2.нечто3

283
23 марта 2003 года
Alone
910 / / 20.11.2002
Цитата:
Originally posted by Joker

Вот кака я это проверяю на php:
if (!eregi('^([a-z0-9_]|\\-|\\.)+'.'@'.'(([a-z0-9_]|\\-)+\\.)+'.'[a-z]{2,4}$', $email))
Янадеюсь тут видно, из регулярного вырожение как может выглядить мыло :)
А вообще я бы изходил из конструкуии:
нечто1@нечто2.нечто3



Joker а eregi не различает регистор чтоли? [email]TesT@myhost.info[/email] нормально отвалидатит?
А как например такое Test@197.29.30.51 ?

еще я нашел такую инфу
Как могут выглядеть адреса :
a%b.c@d.e # сначала письмо идет на d.e, затем на a@b.c
a+b@c.d # адрес a@c.d, b - некий комментарий.
a::b@c.d # mail11 (для vms) нотация.
b!d # uucp нотация
@a.b;c@d.e # gateway нотация
Необычно правда? :)

vitorg я слашал про модули RFC::RFC822::Address и Email::Valid может они подайдут

Или сюда сходи http://www.oreillynet.com/pub/wlg/2379 там кстати и ссылка на rfc822 есть

455
23 марта 2003 года
vitorg
55 / / 20.05.2000
Спасибо огромное за ссылку, ты меня просто спас =0)
Насчёт модулей: использую их очень редко (когда совсем уж необходимо) тк неизвестно кто их писал и чего там наглючил, и ессно не буду их юзать ради только проверки мыла =)))
455
23 марта 2003 года
vitorg
55 / / 20.05.2000
Кто-нибудь может разъяснить это рег.выражение?
 
Код:
/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/

это для JS, подойдёт ли оно для Perl?
Что значит не предслэшенная собачка (@)?
И что значит $ в конце рег.выр.?
4
23 марта 2003 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by vitorg

это для JS, подойдёт ли оно для Perl?
Что значит не предслэшенная собачка (@)?
И что значит $ в конце рег.выр.?



не предслэшенная собачка (@) значит собачку (@)
а $ - конец строки

250
23 марта 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by Alone


Joker а eregi не различает регистор чтоли? [email]TesT@myhost.info[/email] нормально отвалидатит?
А как например такое Test@197.29.30.51 ?

еще я нашел такую инфу
Как могут выглядеть адреса :
a%b.c@d.e # сначала письмо идет на d.e, затем на a@b.c
a+b@c.d # адрес a@c.d, b - некий комментарий.
a::b@c.d # mail11 (для vms) нотация.
b!d # uucp нотация
@a.b;c@d.e # gateway нотация
Необычно правда? :)

vitorg я слашал про модули RFC::RFC822::Address и Email::Valid может они подайдут

Или сюда сходи http://www.oreillynet.com/pub/wlg/2379 там кстати и ссылка на rfc822 есть



eragi не чувствителен к регистру.
Немного подправил :
if (!eregi('^([a-z0-9_]|\\-|\\.)+'.'@'.'(([a-z0-9_]|\\-)+\\.)+'.'[a-z0-9]{2,4}$', $email))


теперь: Test@197.29.30.51 проскочит.

455
24 марта 2003 года
vitorg
55 / / 20.05.2000
Цитата:
Originally posted by Joker


eragi не чувствителен к регистру.
Немного подправил :
if (!eregi('^([a-z0-9_]|\\-|\\.)+'.'@'.'(([a-z0-9_]|\\-)+\\.)+'.'[a-z0-9]{2,4}$', $email))


теперь: Test@197.29.30.51 проскочит.


Кстати, Test@197.29.30.51 не должен проскакивать, должет проскакивать Test@[197.29.30.51]
(смотри http://www.oreillynet.com/cs/user/view/cs_msg/12489 )

300
24 марта 2003 года
ReDrum
689 / / 20.04.2000
Цитата:
Originally posted by vitorg
Спасибо огромное за ссылку, ты меня просто спас =0)
Насчёт модулей: использую их очень редко (когда совсем уж необходимо) тк неизвестно кто их писал и чего там наглючил, и ессно не буду их юзать ради только проверки мыла =)))



Людям доверять надо ;)=

250
24 марта 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by vitorg

Кстати, Test@197.29.30.51 не должен проскакивать, должет проскакивать Test@[197.29.30.51]
(смотри http://www.oreillynet.com/cs/user/view/cs_msg/12489 )


Странно как то: Test@[197.29.30.51]- первый раз такое вижу..
Почитав rfc я такого не нашел..
Но вот прочитав это:
http://www.oreillynet.com/pub/wlg/2379
Another bit of a twist is that you can also specify an IP address instead of a domain name. For example, I'm not only "kevin@kbedell.com", I'm also kevin@216.80.243.82.

To make matters worse - as it should be expected to get - many mail servers won't accept emails even if they are valid. For example, my mail server won't accept kevin@216.80.243.82 - the anti-spam controls bounce it.

Такчто судя по всему верно: Test@197.29.30.51

А мы людям доверяем.. просто не даем им ошибится.. опечататься так сказать :))

638
24 марта 2003 года
deadface
17 / / 20.09.2000
кхе-кхе.
а как же быть с адресами типа [email]xxx@rambler.ru[/email]. ?
;)
250
25 марта 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by deadface
кхе-кхе.
а как же быть с адресами типа [email]xxx@rambler.ru[/email]. ?
;)


А с ним что не так ?
Моя проверка его отценит как ок и пропустит.

300
26 марта 2003 года
ReDrum
689 / / 20.04.2000
вот... пример вылавливания
эл.адресов согласно стандарту RFC 822 !
развлекайтесь
тока уберите \n ;)=

--------------------- little regular expression --------------------

[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-
\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\
xff\n\015()]*)*\)[\040\t]*)*(?:(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80
-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"[^\\\x80-\xff\n
\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[\040\t]*(?:\([^\\\
x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\
[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\
040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xf
f]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)
*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\0
00-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|"[^\\
\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015"]*)*")[\040\t]
*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\0
15()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\01
5()]*)*\)[\040\t]*)*)*@[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[
^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n
\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:"
.\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xf
f])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?:\([^
\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?
:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\
)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-
\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()
]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\
]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[
(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80
-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\
x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040
\t]*)*)*|(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,
;:".\\\[\]\000-\037\x80-\xff])|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xf
f][^\\\x80-\xff\n\015"]*)*")[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-
\037]*(?:(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-
\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\
xff\n\015()]*)*\)|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\x
ff\n\015"]*)*")[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]*)*<[\04
0\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff
\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\
n\015()]*)*\)[\040\t]*)*(?:@[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(
?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\
xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<>
@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x8
0-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?
:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015(
)]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()
]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^
\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\
015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:[^(\040)<>@,;:".
\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff
])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\])[\040\t]*(?:\([^\
\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:
\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)
[\040\t]*)*)*(?:,[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-
\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()
]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*@[\040\t]*(?:\([^\\\x80-
\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x
80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\
t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".
\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xf
f])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^
\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\
\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80-\xff\n
\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xf
f][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(
?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]
\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80-\xff])*\]
)[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80
-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-
\xff\n\015()]*)*\)[\040\t]*)*)*)*:[\040\t]*(?:\([^\\\x80-\xff\n\015()
]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\
\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*)?(?:[^
(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\[\]\000
-\037\x80-\xff])|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][^\\\x80-\xf
f\n\015"]*)*")[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xf
f]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)
*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\x80
-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\
x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040
\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:"
.\\\[\]\000-\037\x80-\xff])|"[^\\\x80-\xff\n\015"]*(?:\\[^\x80-\xff][
^\\\x80-\xff\n\015"]*)*")[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\
\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff
\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*)*@[\040\t]*(?:\
([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]
*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*
)*\)[\040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\04
0)<>@,;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\
[^\x80-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-
\xff]|\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()
]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*(?:\.[\040\t]*(?:\([^\\\
x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|\([^\\\x80-\xff\n\015()]*(?:\\
[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\))[^\\\x80-\xff\n\015()]*)*\)[\
040\t]*)*(?:[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,
;:".\\\[\]\000-\037\x80-\xff])|\[(?:[^\\\x80-\xff\n\015\[\]]|\\[^\x80
-\xff])*\])[\040\t]*(?:\([^\\\x80-\xff\n\015()]*(?:(?:\\[^\x80-\xff]|
\([^\\\x80-\xff\n\015()]*(?:\\[^\x80-\xff][^\\\x80-\xff\n\015()]*)*\)
)[^\\\x80-\xff\n\015()]*)*\)[\040\t]*)*)*>)

--------------------- little regular expression --------------------
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог