2014-09-27 25 views
0

你好,我正在努力從最後的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("[email protected]"); 
    assertTrue(ea.isValid()); 
    } 
    @Test 
    public void shouldNotAccept123AtCsDotEdu() { 
    EmailAddress ea = new EmailAddress("[email protected]"); 
    assertFalse(ea.isValid()); 
    } 
} 

編輯:這是測試代碼,我已經爲這個項目

+0

true或false ... – 2014-09-27 03:43:46

+0

我知道這是愚蠢的我只是絕對卡住也許是因爲它遲到了。我想我應該檢查別的東西?我也可以發佈我的測試文件。 – 2014-09-27 03:44:50

回答

0

想想本作。「有效」電子郵件對您意味着什麼?

*,其附着(在大多數情況下),以RFC 822,其中明確定義了一個有效的電子郵件實際上是書面使用正則表達式的電子郵件驗證。

電子郵件驗證是複雜,因爲有很多組件和零件。最終,簡單地將電子郵件發送給最終用戶以確定其是否有效可能更容易;如果他們能回覆它,那麼它是有效的。

但是,如果你想要寫一個簡單的校驗,定義範圍:

  • 你接受任何通用頂級域名?
  • 您是否接受其中嵌入+字符的電子郵件? (這是有效的和恥辱大多數服務不接受它)
  • 你關心的寬度?

,你可以建立一個驗證器。但是,你必須縮小範圍。在電子郵件中有很多東西需要檢查,並且有一些顯而易見的事情可以在不發送電子郵件的情況下進行檢查(即無TLD)。

但是你真的應該縮小範圍。

*:是的,我很遺憾這個事實。