2

我需要验证插入的电子邮件地址是否包含“@”和“。” 没有正则表达式。有人可以给我“java代码”和“结构图”的例子吗?

4

7 回答 7

10

怀疑你在追求类似的东西:

if (!address.contains("@") || !address.contains("."))
{
    // Handle bad address
}

编辑:当然,这远非完整的验证。这甚至还只是验证的开始——但希望这能让你处理你想要处理的特定情况。

于 2011-05-10T20:03:12.970 回答
3

您可以使用commons-validator,特别是EmailValidator.isValid()

于 2011-05-10T20:03:11.410 回答
1

根据我的个人经验,验证电子邮件地址的唯一方法是发送带有验证链接或代码的电子邮件。我尝试了许多验证器,但它们并不完整,因为电子邮件地址可能非常松散......

于 2011-05-10T20:04:48.447 回答
1
int dot = address.indexOf('.');
int at = address.indexOf('@', dot + 1);

if(dot == -1 || at == -1 || address.length() == 2) {
  // handle bad address
}

This is not complete solution. You will have to check for multiple occurances of @ and address with only '.' and '@'.

于 2011-05-10T20:42:04.877 回答
0

如果您不允许使用正则表达式,请使用 String.indexOf,但我建议您不要在输入期间验证地址。

最好发送激活电子邮件。

于 2011-05-10T20:02:46.867 回答
0

您还可以使用 Java 邮件 API。具体来说,这里:

http://javamail.kenai.com/nonav/javadocs/javax/mail/internet/InternetAddress.html#InternetAddress(java.lang.String , boolean)

于 2011-05-10T20:12:51.107 回答
0

您可以搜索第一个“@”,然后检查“@”左侧的内容是否为有效字符串(即它没有空格或其他任何内容)。之后,您应该在右侧搜索“.”,并检查两个字符串是否为有效域。

这是一个相当弱的测试。无论如何,我建议使用正则表达式。

于 2011-05-10T20:24:15.987 回答