2012-10-10 343 views
0

如何使用c#中的正則表達式驗證以下不正確的電子郵件地址?正則表達式來驗證[email protected]

如:

[email protected] 

[email protected] 

這些被驗證爲正確的電子郵件地址。有什麼想法嗎?由於

+12

雖然這些都是有效的電子郵件地址。 – Gromer

+1

電子郵件地址可以位於子域上的服務器上,例如'約翰@ server.department.company.com'。 –

+0

是的,但[email protected]不是一個有效的電子郵件地址,你如何驗證? 或[email protected] – Sev

回答

1

儘管[email protected][email protected]都是有效,但從句法的角度來看,它們的域部分並不指向現有的域。 對於這種測試,您可能需要提取您感興趣的域名部分並查詢DNS(請參閱RFC 2821RFC 2822)以查看它是否存在。

由於您使用.NET,順便提一下,我建議您看看我們的EmailVerify.NET,領先的email validation庫,它可以驗證語法(根據最新的IETF標準),域部分和爲您的電子郵件地址存在郵箱。

+0

謝謝你的回答。 – Sev

+0

不客氣,塞夫! –

1

您可能希望只使用類似:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])? 

有關列表,請參閱this頁。

0

請考慮這個表達式:

([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3}) 

它將匹配所有的電子郵件地址,如果沒有匹配的電子郵件地址,電子郵件,廣告格式不正確,希望它能幫助:)

+0

這不符合有效的地址,如'jean-franç[email protected] invalid.travel' – Toto