2010-09-22 65 views
0

我一直在試圖找到一個良好的RegEx電子郵件驗證。RegEx使用的System.Net.Mail.MailAddress

我已經通過Comparing E-mail Address Validating Regular Expressions這並不足以滿足我所有的驗證需求。 我有Google/Bing(ed)並掃描前50個奇數結果,包括正則表達式信息文章和其他東西。

因此,最後我用System.Net.Mail.MailAddress類來驗證我的電子郵件地址。因爲,如果失敗了,我的電子郵件將不會發送給用戶。

我想定製類的構造函數所使用的驗證。

那麼,如何繼續並獲取MailAddress類正在使用的驗證/ RegEx?

回答

0

由於反射器......忘了你仍然有自由!

反映的System.Net.Mail.MailAddress ...

發現它使用了void ParseValue(string address)

void GetParts(string address)方法主要檢查電子郵件地址格式。

//編輯

很驚訝,沒有RegEx參與!

+0

以下是解析http://referencesource.microsoft時使用的源代碼。 COM /#系統/網絡/系統/網絡/郵件/ MailAddressParser.cs – stefann 2017-05-25 06:56:02

2

不,它不使用RegEx,而是一個複雜的過程,在這裏解釋時間太長。我怎麼知道?我使用.NET Reflector查看了實現。所以你可以:d

http://www.red-gate.com/products/reflector/(免費)

+0

正是我剛剛做的!我會爲你的正則表達式採用某種標準 - 可能在你看到的50個奇怪結果中找到一個。 – 2010-09-22 06:10:37

+0

謝謝噸傢伙!只是忘了反射器仍然存在,MS沒有像其他API供應商那樣混淆其代碼。 :) – Vaibhav 2010-09-22 06:12:02

+0

以下是解析http://referencesource.microsoft.com/#System/net/System/Net/mail/MailAddressParser.cs的源代碼 – stefann 2017-05-25 06:55:52

0

根據Reflector,該類根本不使用正則表達式。