java - java中的电子邮件验证

标签 java regex

是否有任何正则表达式来验证不允许 .com.com 的电子邮件,即 example@example.com.com 但允许 .com.uk? 我已经粘贴了当用户输入 .com.com 时应返回 false 的代码。谁能验证我下面的代码吗?

String ePattern = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Pattern p =Pattern.compile(ePattern);
Matcher m = p.matcher(studentemail);
b= m.matches();
    if(!b) {
        eMsg.addError("email must be in formate: example@example.xxx / example@example.xx");
        request.setAttribute("errorMessage", eMsg);
        requestDispatcher = request.getRequestDispatcher("/addrecord.jsp");
        requestDispatcher.forward(request, response);
        return;
    }   

     else {
           System.out.println("valid email id");
      } 

最佳答案

在大多数情况下,此类正则表达式不限于 Java(仅当使用 Java 正则表达式引擎不支持的特殊功能时)。除此之外,如果您只想匹配 @example.xx 您应该调整正则表达式的第二部分(尤其是该部分的第一组)。但请注意,像 xxx.co.uk 这样的域名可能在那时无效。

此外,xx.com.com可能是无效域,但也可能不是(至少在其他组合中,例如de.de 是一个有效的域),因此您可能希望允许这样做,仅测试特定组合或限制此类域的使用。

但是,根据您的用例,发送确认电子邮件可能会更好,因为正则表达式可以告诉您它看起来正确,但可能仍然存在错误。

关于java - java中的电子邮件验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40505122/

相关文章:

java - 构建自定义 Java 库

java - 如何检查随机生成的数组中的每个 int 是否偶数,如果不是,则让它创建另一个随机数组?

javascript - 如何测试有效的UUID/GUID?

java - 制造+非贪婪?

java - 在参数中传递字节数组

java - 如何递归解压缩java中的给定字符串?

javascript - 带有特殊字符 (.) 的正则表达式字边界 javascript

python - 如何从Python中使用的多个匹配字符串中知道哪些正则表达式模式

java - 模式 XXYYZZ 的正则表达式

java - Hibernate 尝试向不存在的表插入数据