您好我正在努力从最终的isValid方法返回什么我基本上需要检查一个电子邮件地址是否有效请求任何所有帮助表示赞赏。
public class EmailAddress {
private static final String x = "[a - z]";
private static final String y = "[a-z0-9]";
private static final String id = x + y;
private String address;
public EmailAddress(String address) {
this.address = address;
}
public void setAddress(String address) {
this.address = address;
}
public String getAddress() {
return address;
}
/**
* Verify that a string is an email address.
* The string must obey the following (somewhat strict format)
* <email> ::= <identifier> @ <identifier> {. <identifier>}
* <identifier> ::= letter { letter | digit }
**/
public boolean isValid() {
if (address == null) return false;
String check = (id + "@" + id + "{." + id + "}" );
return
}
}
这是我的JUtil测试代码:
public class TestEmail {
private EmailAddress address;
@Test
public void replaceMe() {
assertTrue(true);
}
@Test
public void shouldAcceptJohnAtCsDotEdu() {
EmailAddress ea = new EmailAddress("john@cs.edu");
assertTrue( ea.isValid() );
}
@Test
public void shouldNotAccept123AtCsDotEdu() {
EmailAddress ea = new EmailAddress("123@cs.edu");
assertFalse( ea.isValid() );
}
}
编辑:这是我为项目制作的测试代码
答案 0 :(得分:0)
想一想。&#34;有效&#34;电子邮件对你意味着什么?
我在 * 之前编写了一个使用正则表达式的电子邮件验证程序,其中(大部分)都遵守RFC 822,明确定义了有效的电子邮件是
电子邮件验证复杂,因为有很多组件和部件。最终,简单地将电子邮件发送给最终用户以确定它是否有效可能更容易;如果他们可以回复,那么它是有效的。
但是,如果你想编写一个简单的验证器,请定义你的范围:
从那里,您可以构建验证器。但是,你必须缩小你的范围。在电子邮件中检查有很多东西,有一些显而易见的事情可以在不发送电子邮件的情况下进行检查(即没有TLD)。
但你应该缩小你的范围。
*:是的,我非常后悔这个事实。