регулярное выражение для проверки электронной почты в Java - PullRequest
7 голосов
/ 04 мая 2010

Я использую следующее регулярное выражение

(".+@.+\\.[a-z]+")

Бит принимает #@#.com в качестве действительного адреса электронной почты. Какой шаблон я должен использовать?

Ответы [ 6 ]

27 голосов
/ 04 мая 2010

Вам следует использовать валидатор электронной почты apache-commons. Вы можете получить файл jar из здесь .

Вот простой пример того, как его использовать:

import org.apache.commons.validator.routines.EmailValidator;

boolean isValidEmail = EmailValidator.getInstance().isValid(emailAddress);
2 голосов
/ 04 мая 2010

Вот веб-страница, которая объясняет это лучше, чем я: http://www.regular -expressions.info / email.html ( РЕДАКТИРОВАТЬ : кажется немного устаревшим поскольку это относится к RFC 2822, который был заменен RFC 5322)

И еще один интересный взгляд на проблему проверки: http://www.markussipila.info/pub/emailvalidator.php

Как правило, лучшая стратегия проверки адреса электронной почты - просто попытаться отправить письмо на него.

1 голос
/ 29 октября 2013

[A-z0-9 ._% + -] +. @ [А-Z0-9 .-] + [A-Z] {2,4}

1 голос
/ 04 мая 2010

Если кто-то хочет ввести несуществующий адрес электронной почты, он сделает это в любом формате, который вы выберете.

Единственный способ проверить, что пользователь владеет введенным им адресом электронной почты, - это отправить ссылку подтверждения (или активации) на этот адрес и попросить пользователя щелкнуть его.

Так что не пытайтесь усложнить жизнь своим пользователям. Проверка на наличие @ достаточно хороша.

0 голосов
/ 03 июня 2015
import java.util.regex.*;

class ValidateEmailPhone{

    public static void main(String args[]){

        //phone no validation starts with 9 and of 10 digit
        System.out.println(Pattern.matches("[9]{1}[0-9]{9}", "9999999999"));

        //email validation
        System.out.println(Pattern.matches("[a-zA-Z0-9]{1,}[@]{1}[a-z]{5,}[.]{1}+[a-z]{3}", "abcd@gmail.com"));
    }
}
0 голосов
/ 03 апреля 2013

Я обычно использую следующее:

([a-zA-Z0-9]+(?:[._+-][a-zA-Z0-9]+)*)@([a-zA-Z0-9]+(?:[.-][a-zA-Z0-9]+)*[.][a-zA-Z]{2,})
...