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


Автор: SHAmanovi4 7.12.2006, 16:18
Здрасте. Я наверное, совсем с ума сошел. У меня не пашет элементарная регулярка для проверки правильности адреса почты.

Пишу:
Код

$mail = 'rp +98?:[email protected]';
if ($mail !~ /[a-z0-9.-_]+@[a-z0-9.-_]+\.[a-z]{2,4}/i)    {
     print "\nError in Mail!";
}
else     {
     print "Cooll mail!\n";
}


Выводит, что правильное мыльце... Печально как-то... Подскажите, где ошибка? Как правильно?

Автор: Nab 7.12.2006, 16:26
может быть вот так стоит smile
/[a-z0-9\.\-_]+@[a-z0-9\.\-_]+\.[a-z]{2,4}/i

А то точка вообщето указывает на любой символ smile
да и дефис бы я экранировал на всяк случай...

Автор: SHAmanovi4 7.12.2006, 16:28
неа. Попробуйте - не пашет... Лично у меня точно... smile 

Автор: SHAmanovi4 7.12.2006, 16:44
Блин! Все. Спасибо. ПРоблема снята.

Код

/^[a-z0-9.-_]+@[a-z0-9.-_]+\.[a-z]{2,4}$/i

Автор: Nab 7.12.2006, 16:45
Ну дык понятно smile

Попробуй в мыле задать недопустимый символ прям рядом с @, с одной или с другой стороны smile

Эт просто ты не указал границ паттерна...

Вот так правильно :
Код

/^[a-z0-9\.\-_]+\@[a-z0-9\.\-_]+\.[a-z]{2,4}$/i


PS: Я и не заметил что опоздал с ответом smile
ну да ладно, главное что я тоже в тему попал smile... 

PSS: SHAmanovi4, закрой плиз тему...

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