【发布时间】:2011-08-06 14:40:29
【问题描述】:
我正在尝试寻找一种简单的方法来检查用户的输入是否符合电子邮件地址的几个标准。我已经阅读了有关此主题的许多主题,并且大多数似乎也想验证电子邮件地址。我不是想建立一些超级骗子电子邮件地址验证器/检查器。我正在尝试构建一个检查这些东西的方法:
- 用户输入的字符串包含“@”符号。
- “@”符号前至少有两个字符。
- 有一个'.'在 at 符号之后仅跟三个字符。域名可以任意长,但字符串必须以“._ _ _”结尾。如“.com”或“.net”...
我了解这不是一个包罗万象的电子邮件地址检查器。但这不是我想要的。我想要这么简单的东西。我知道这可能是一个常规问题,但即使在阅读了所有非常疯狂的验证电子邮件地址的方法之后,我也无法弄清楚。
这是我到目前为止的代码:(别担心,我已经知道它很可悲......)
public static void checkEmail()
{
validEmail(emailAddresses);
if(validEmail(emailAddresses))
{
}
}
public static boolean validEmail(String email) {
return email.matches("[A-Z0-9._%+-][A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{3}");
}
【问题讨论】:
-
在这种情况下很难说什么是简单的。您发布了一些案例(包含@,包含之前/之后的另一个字符)。我会阅读规范并制作一个完整的正则表达式来验证它。
-
只是对术语的说明:您不想查看电子邮件,而是要查看电子邮件地址。这不一样。
-
另一个注意事项:有多个顶级域(
museum、aero)和少于两个(de、us等 - 所有国家代码顶级域,实际上)字母。 (而且我的大多数电子邮件地址都以.de结尾。) -
@Paŭlo Ebermann 感谢您的更正。我进行了必要的编辑以澄清原始问题。
标签: java string email-validation