Программирование > Регулярные выражения

регэксп е-мэйла

(1/2) > >>

Forza:
Обнаружив, что в случае отправки е-мэйла на адрес, в котором юзер указал какую-нибудь лабуду, получается интернал сервер еррор, я решил проверять введённые юзером е-мэйлы.
Конечно, чтобы скрипт не валился достаточно простой проверки типа /.+@.+/, но заодно хотелось сделать максимально возможную проверку е-мэйла на похожесть на настоящий (вдруг юзер просто ошибся). Из одной книги (какой, уже не помню) давно скопировал следующий регэксп:
/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/, т.е.
а) до собаки имеем набор alphanumeric символов, в котором разделителями могут быть одиночные точка и/или тире
б) после собаки сначала - такой же набор с такими же разделителями, потом - набор из доменов высшего уровня (как минимум 1!), длиной от 2 до 3 символов.

Почитав тут про введение всяких разных новых доменов высшего уровня я решил, что тут как минимум есть одно неправильное условие - ограничение длины домена верхнего уровня, т.е. получим регэксп:
/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,})+$/

Что ещё посоветуете исправить? Хочется сделать регэксп с минимальными ограничениями, чтобы он удовлетворял всевозможным е-мэйлам, и скрипт бы не давал юзеру его обойти! Т.е. если формат е-мэйлов очень плавающий, тогда вернёмся к /.+@.+/

Phoinix:
Forza
http://forums.webscript.ru/showthread.php?s=&threadid=13029

Forza:
Мда, ты почти убедил меня в проверке /.+@.+/, только чтобы sendmail не загибался от отсутствия собаки. ;)

Phoinix:
Forza
Да нет, ты знаешь, я уже больше года пользуюсь етим регом, и ничего... никто не ругался... ;)
Даже не сильно задавлся желанием его проверять, та и в общем это не нужно...

Проще IMHO отлавливать ошибку sendmail

Green Kakadu:

--- Цитировать ---Forza:
Что ещё посоветуете исправить?
--- Конец цитаты ---

:) наверное, если все-таки интернациональные домены типа "вася.ру" будут более распространены чем сейчас :) то нужно будет учитывать нац.кодировку

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии