Java中的电子邮件验证的正则表达式

时间:2010-05-04 05:20:07

标签: java regex email-validation

我正在使用以下正则表达式

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

它接受#@#.com作为有效的电子邮件。我应该使用什么模式?

6 个答案:

答案 0 :(得分:27)

您应该使用apache-commons电子邮件验证程序。您可以从here获取jar文件。

以下是如何使用它的简单示例:

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

boolean isValidEmail = EmailValidator.getInstance().isValid(emailAddress);

答案 1 :(得分:2)

这是一个能够比我更好地解释的网页:http://www.regular-expressions.info/email.html EDIT :由于它引用了已被取代的RFC 2822,因此似乎有点过时了通过RFC 5322)

另一个对验证问题有趣的看法:http://www.markussipila.info/pub/emailvalidator.php

通常,验证电子邮件地址的最佳策略是尝试向其发送邮件。

答案 2 :(得分:1)

如果有人想输入不存在的电子邮件地址,他会按照您选择的格式验证进行操作。

检查用户是否拥有自己输入的电子邮件的唯一方法是向该地址发送确认(或激活)链接,并要求用户点击该链接。

所以不要试图让用户的生活更难。检查是否存在@就足够了。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

我通常使用以下一个:

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

答案 5 :(得分:0)

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"));
    }
}