2010-07-21 110 views
1

不幸的是,我的hMailServer不能發送電子郵件到Hotmail。如何確定給定的電子郵件地址是否是Hotmail,以防止郵件丟失。RegEx'ing Hotmail電子郵件地址與C#

Hotmail的電子郵件可以是: * @ live.com * @ live.fr [PT]的[Ru] [等] * @ hotmail.com, * @ live.com.jp * @ msn.com *以及涉及MSN,Hotmail和Live的許多國家TLD特定組合。

它似乎不可能使用正則表達式來過濾。

有關如何檢測電子郵件地址是否位於Hotmail地址族中的任何想法?

+1

我們在談論什麼語言約在這裏? – NullUserException 2010-07-21 15:22:57

+0

C#/ ASP.NET MVC – Alex 2010-07-21 15:23:19

回答

2

這將工作:

function bool IsHotmailAddress(string email) { 
    var r = new Regex(@"\@(live|hotmail)\.[a-z]{2,3}(\.[a-z]{2,3})?$", RegexOptions.IgnoreCase); 
    return r.IsMatch(email); 
} 
+0

確實。我懶得添加剩餘部分:P – NullUserException 2010-07-21 15:42:16

+0

這會給像[email protected]或[email protected]這樣的稀有網站帶來誤報,而這些網站不會是hotmail地址。你可以通過改變[az]匹配來匹配任何tld的((co | com | org | edu | net | jp | ca | ...)),但我認爲這是矯枉過正,你必須添加一些東西隨着時間的推移 – 2010-07-21 15:51:58

+0

謝謝!我希望我也是一個RegEx大師...我只是不明白這個東西 – Alex 2010-07-21 17:11:00

相關問題