gpt4 book ai didi

java - 当域名包含连字符时,电子邮件地址验证失败

转载 作者:行者123 更新时间:2023-12-01 06:26:01 24 4
gpt4 key购买 nike

我有一个电子邮件地址验证正则表达式,我在代码中使用它,如下所示:

public class Test {

public static void main(String[] args) {
try {
String lineIwant = "myname@asl.ramco-group.com";
String emailreg = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
Boolean b = lineIwant.matches(emailreg);

if (b == false) {
System.out.println("Address is Invalid");
}else if(b == true){
System.out.println("Address is Valid");
}
} catch (Exception e) {

e.printStackTrace();
System.out.println(e.getMessage());
}
}
}

对于示例中的这个特定电子邮件地址, boolean 值返回 false,而这是有效的客户电子邮件地址。

我怀疑这是因为 ramcogroup 之间的连字符,因为当我删除它时, boolean 值返回 true。

如何更改我的正则表达式以适应这样的电子邮件地址?

最佳答案

您的正则表达式不允许在 @ 符号后添加 -,因此

String emailreg = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})$";

将“解决”这个特定问题。但电子邮件地址比这复杂得多。使用正则表达式验证它们并不是一个好主意。查看@DuncanJones 的评论。

关于java - 当域名包含连字符时,电子邮件地址验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16295329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com