2011-05-10 102 views
2

我需要驗證插入的電子郵件地址是否包含「@」和「。」。沒有正則表達式。 有人可以給我「java代碼」和「結構圖」的例子嗎?驗證電子郵件地址是否包含「@」和「。」。

+0

你的意思是地址是*只是*「@」還是「。」?或者驗證他們*包含*「@」和「。」。 – 2011-05-10 20:02:32

+1

你真的看過嗎? (或者實際上嘗試什麼?)這類問題遠非「稀有」。 – 2011-05-10 20:02:46

+0

對不起,驗證郵件是否包含「@」和「。」。 – 2011-05-10 20:04:54

回答

10

嫌疑你喜歡的東西后是這是遠從完整的驗證,當然。它幾乎不是開始驗證 - 但希望這會讓你去與你想處理的特定情況。

+2

還算不錯。 「。@」甚至沒有接近有效的地址:) – Kaj 2011-05-10 20:11:19

+5

@Kaj:絕對。這遠不是一個完整的驗證 - 我只回答所問的問題。 – 2011-05-10 20:13:08

+1

+1,用於回答剛剛被問到的問題:) – 2011-05-10 20:22:48

0

使用String.indexOf如果你不能使用正則表達式,而但我會adwise你輸入時不驗證地址。

最好發送一封激活郵件。

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

編輯:

1

從我個人的經驗,不僅是驗證一個電子郵件地址發送電子郵件包含驗證鏈接或代碼。 我嘗試了許多驗證器,但它們並不完整,因爲電子郵件地址可能非常鬆散...

+0

甚至一個有效的電子郵件地址也不多。 – 2011-05-10 20:10:17

+0

即使您能夠將電子郵件發送到某個地址,也不能證明它是「有效」的(假設您將「有效」定義爲「遵循RFC」。 – Brian 2011-05-10 20:34:56

+0

@Brian:「帶有驗證鏈接或代碼」即通過點擊鏈接用戶確認提供的電子郵件是通信的工作手段我也探索了appache utils但是我們有一些外國客戶抱怨我們的系統使用否認他們有效的電子郵件地址 – VirtualTroll 2011-05-11 14:06:27

0

您可以搜索第一個「@」,然後檢查你所擁有的的左側「@」是一個有效的字符串(即它不有空間或其他)。之後,您應該在右側搜索「。」,並檢查兩個字符串是否有效。

這是一個很弱的測試。無論如何,我建議使用正則表達式。

1
int dot = address.indexOf('.'); 
int at = address.indexOf('@', dot + 1); 

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

這不是完整的解決方案。您必須檢查@和多個發生的地址,只有'。'和'@'。