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

Ваш аккаунт

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

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

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

Регулярные выражения

382
18 декабря 2003 года
dodger
164 / / 07.02.2003
Как в регулярных выражениях выглядит знак подчеркивания, т.е. "_". Мне это нужно для проверки правильности введения e-mail адреса. У меня выражение выглядит следующим образом:
 
Код:
@eregi('^[0-9a-z]+'.'@'.'([0-9a-z-]+\.)+'.'([0-9a-z]){2,4}$',$mail)


Заранее спасибо.
4
18 декабря 2003 года
mike
3.7K / / 01.10.2002
Сам вчера вечером парился :) не совсем правильное регулярное выражение. Не учитывается следующие:

1. имя хоста может содеражать ".", например [email]petka@novsu.ac.ru[/email]
2. имя пользователя может содержать "-", например [email]petka-sux@yandex.ru[/email]
3. домены первого уровня могут содержать более 4 символов, например [email]mike@british.muse[/email]um

вот то что у меня получилось:

 
Код:
if (!eregi("^[_a-zA-Z0-9-]+@[\.a-zA-Z0-9-]+\.[a-z]{2,6}$", $Email)) return 1;
382
18 декабря 2003 года
dodger
164 / / 07.02.2003
Цитата:
Originally posted by mike

 
Код:
if (!eregi("^[_a-zA-Z0-9-]+@[\.a-zA-Z0-9-]+\.[a-z]{2,6}$", $Email)) return 1;


Спасибо. С этими регулярными ни одной толковой книги или статьи найти не могу. Т.е. из твоего кода я понял, что включение таких символов как подчеркивание, дефиз (он же тире), знак доллара и т.п. выполняется посредством добавления их в код. Т.е. чтобы включит тире, подчеркивание и знак доллара надо сделать следующее [_a-zA-Z0-9-$].
Правильно?

4
18 декабря 2003 года
mike
3.7K / / 01.10.2002
Честно говоря не могу ответить на этот вопрос. Сам понимаб регулярные вырожения методом проб и ошибок.
300
18 декабря 2003 года
ReDrum
689 / / 20.04.2000
Как это нет толковой статьи

http://perldoc.com/perl5.8.0/pod/perlretut.html
http://perldoc.com/perl5.8.0/pod/perlrequick.html
http://perldoc.com/perl5.8.0/pod/perlre.html

Ох, здается мне что страшная весчь эта пхп :)=
1.8K
18 декабря 2003 года
2NetFly
132 / / 01.09.2003
А еще есть 450 страниц второго издания Фридла ;=)
Кстати, в этой книге приводится регулярное выражение (объем около страницы) для проверки правильность мыла.

ReDrum, она не страшная, она ужасно прекрасная ;=)
382
18 декабря 2003 года
dodger
164 / / 07.02.2003
Всем спасибо. Очень помогла ссылка:
regexplib.com/
Там есть много выражение для проверки строк.
300
19 декабря 2003 года
ReDrum
689 / / 20.04.2000
Цитата:
Originally posted by 2NetFly
А еще есть 450 страниц второго издания Фридла ;=)
Кстати, в этой книге приводится регулярное выражение (объем около страницы) для проверки правильность мыла.


ТОка не вижу я толку в этой проверки адреса. На самом деле что важнее правильный мыл с точки зрения синтаксиса или валидный мыл за которым существует человек.

Цитата:


ReDrum, она не страшная, она ужасно прекрасная ;=)


;)=

265
19 декабря 2003 года
Gauss
975 / / 20.02.2000
Цитата:
Originally posted by mike
1. имя хоста может содеражать ".", например [email]petka@novsu.ac.ru[/email]
2. имя пользователя может содержать "-", например [email]petka-sux@yandex.ru[/email]
3. домены первого уровня могут содержать более 4 символов, например [email]mike@british.muse[/email]

а еще бывает что-то типа [email]bla.blabla@blablabla.bla[/email]

1.8K
19 декабря 2003 года
2NetFly
132 / / 01.09.2003
Цитата:
Originally posted by Gauss
а еще бывает что-то типа [email]bla.blabla@blablabla.bla[/email]


А еще бывает:
"user" @ domen . ZONE
Very (Ochen) Strange @ mail. com

1.8K
19 декабря 2003 года
2NetFly
132 / / 01.09.2003
Цитата:
Originally posted by ReDrum

ТОка не вижу я толку в этой проверки адреса. На самом деле что важнее правильный мыл с точки зрения синтаксиса или валидный мыл за которым существует человек.


Проверку синтаксиса нужно осуществить хотя бы для того, чтоб внешний вызов того же sendmail не закончился плачевно. А для проверки существования адреса есть довольно простой и эффективный метод – отправление сообщения с ссылкой.

4
19 декабря 2003 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by 2NetFly

Проверку синтаксиса нужно осуществить хотя бы для того, чтоб внешний вызов того же sendmail не закончился плачевно. А для проверки существования адреса есть довольно простой и эффективный метод – отправление сообщения с ссылкой.



Это конечно хорошо, но я иногда устаю получать сообщения что письмо на адрес [email]blablabla@blablabla.bla[/email] не удалось доставить.

По этому я делаю такую проверку:

Код:
function CheckEmail($Email) {
    if (!eregi("^[_a-zA-Z0-9-]+@[\.a-zA-Z0-9-]+\.[a-z]{2,6}$", $Email)) return 1;
    list($Username, $Domain) = split("@",$Email);
    if(@getmxrr($Domain, $MXHost)) return 0;
    else {
        $f=@fsockopen($Domain, 25, $errno, $errstr, 30);
        if($f) {
            fclose($f);
            return 0;
            }
        else return 1;
        }
    }
6.4K
20 декабря 2003 года
gsv
1 / / 20.12.2003
Вот регекс для правильной проверки емейла,
http://forum.krapka.te.ua/viewtopic.php?t=694
372
23 декабря 2003 года
Flying
312 / / 20.09.2000
Цитата:
Originally posted by dodger
Спасибо. С этими регулярными ни одной толковой книги или статьи найти не могу.



Рискну предложить свои статьи по этой теме:
http://providerz.ru/articles/php/regexp-intro.html
http://providerz.ru/articles/php/regexp-continue.html

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