2012-09-20 23 views
0

在我的應用程序中,我使用電子郵件驗證。我正在使用this進行電子郵件驗證。它僅檢查輸入的文本是否爲正常的電子郵件格式。當我輸入像[email protected]這樣的電子郵件時,它會返回true。我如何在電子郵件中檢查這種類型的錯誤。Windows手機中的電子郵件驗證錯誤

+0

正如你說,這只是驗證格式;否則您需要檢查每個有效的頂級域名列表。如果你想檢查它*存在*做一些像http://stackoverflow.com/questions/1778390/check-if-email-are-valid-and-exists?rq=1 –

+0

也許得到「。」的索引。然後推斷它後面的部分'= com'還是不? – user959631

+0

對不起,我不太瞭解上面例子中的錯誤。如果是關於TLD不是com,我認爲您需要檢查一個保留的TLD列表。另外,你是什麼意思是「我如何檢查這種類型的錯誤」。基於正則表達式的驗證器是否合適? –

回答

2

如果問題是,你認爲comfg是錯誤的,它應該是3個字元像com中,簡單地改變正則表達式這樣的:

Regex.IsMatch(strIn, 
       @"^(?("")(""[^""]+?""@)|(([0-9a-zA-Z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-zA-Z])@))" + 
       @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,3}))$"); 
+0

但是[email protected]是一個有效的電子郵件。在這種情況下,「[email protected]」也被視爲無效的電子郵件。 –

+0

對。這就是爲什麼我想知道爲什麼你認爲配製是錯誤的。如果你認爲這是一個長度問題,那麼你可以用上面的正則表達式中的最後一個數字來調整它。但是,如果最後一部分的含義不僅僅是長度,那麼您需要根據已知列表進行過濾。所以,你應該問自己的問題是你會允許.aaaa或.mnxy以及.info。我的建議是在你的問題中使用鏈接提供的正則表達式。在嘗試訪問電子郵件地址之前,您可以驗證電子郵件地址的結構,但不能驗證它的存在。 –