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


Автор: diablero 9.11.2007, 23:56
Небходимо проверять коректность ввода e-mail. 
Вот нашел в сети такое выражение, и никак не могу адаптировать его так, чтобы домены не прописывать. Сделать универсальнее.
Код

private static Pattern regexMail = Pattern.compile("[a-zA-Z]{1}[a-zA-Z\\d\\u002E\\u005F]+@([a-zA-Z]+\\u002E){1,2}((net)|(com)|(org)|(ru))");
    public boolean isValidMail(String uname) {
        return regexMail.matcher(uname).matches();
    }

Подскажите.

Автор: Timok 10.11.2007, 00:31
А в каком смысле 
Цитата(diablero)
чтобы домены не прописывать

? в смысле, что бы com|net|org|ru конкретно не указывать? тогда измени конец регулярки 
Код
((net)|(com)|(org)|(ru))
 на 
Код
[a-zA-Z]{2,3}

мб я гоню, но почему в имени домена допускаются только буквы? А цифры и дефис разве не допускаются в email-адресе? 

Автор: Stampede 10.11.2007, 00:36
diablero, регулярку ты нашел неважнец. Например, она не учитывает, что в имени могут быть подчерки и тире (и знак плюса, если уж на то пошло). Вообще, если по большому счету, полностью и скрупулезно составленный регекс под http://www.ietf.org/rfc/rfc2822.txt займет с полстраницы. Но для практических целей, конечно, сгодится и что-нибудь попроще. Вот тут вот чувак предлагает довольно простое и наглядное решение:

http://www.leshazlewood.com/?p=5

Энджой smile

ЗЫ. Если все-таки хочешь взять за основу свою формулу, вместо доменов проставь просто [a-zA-Z]+

Автор: Vasay 10.11.2007, 00:37
А разве мыло не может начинаться с цифры?

следует учесть что почта может быть и такой:

[email protected] - c двумя точками

убрал. не очень хорошее получилось

Автор: Timok 10.11.2007, 01:20
Цитата(Vasay @ 10.11.2007,  00:37)
А разве мыло не может начинаться с цифры?

следует учесть что почта может быть и такой:

[email protected] - c двумя точками

то что мыло не начинается с цифры там указано ([a-zA-Z]{1} вначале). А вот зачем там намерено запрещаются домены 3-го и ниже уровня я тоже не пойму...

Автор: diablero 10.11.2007, 02:47
Цитата(Stampede @  10.11.2007,  00:36 Найти цитируемый пост)
Вот тут вот чувак предлагает довольно простое и наглядное решение

Вроде как годидзе.



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