我想知道是否有人發現一個解決方案,驗證包含unicode域中的unicode字符的電子郵件?我已經搜索了很長時間,還沒有找到可行的解決方案。電子郵件正則表達式,包括unicode域
3
A
回答
3
我有同樣的問題,想出了一個智能解決方案\p{L}
。 請檢查出來:
private static bool IsEmailValid(string email) {
System.Text.RegularExpressions.Regex re = new Regex(@"^[\p{L}0-9!$'*+\-_]+(\.[\p{L}0-9!$'*+\-_]+)*@[\p{L}0-9]+(\.[\p{L}0-9]+)*(\.[\p{L}]{2,})$", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
return re.IsMatch(email);
}
0
好吧,所以我發現的唯一的電子郵件驗證確實很棒(而不僅僅是OK)是Zend Framework的一部分。當然,這意味着PHP,儘管如此,你可以看看他們是如何做到的,並模仿他們的一些更好的想法:http://pastebin.com/SvZPBp31或者只是查找Zend_Validate_EmailAddress源代碼。
抱歉,這不是C#語法/語言。
4
通過正則表達式完全驗證電子郵件地址是硬。真的很難。 This is one that is fully compliant with RFC822。即使你創建了一個完美正則表達式更正驗證所有電子郵件地址,這並不阻止我進入[email protected](如果你想確保我輸入一個有效的電子郵件地址)或從不小心拼錯了我的用戶名(如果你想確保我輸入正確的電子郵件地址)。
只需在電子郵件中發送一個鏈接,說:「點擊此處驗證您的電子郵件地址。」
0
正如已經指出的,通過正則表達式驗證電子郵件地址是一個難題。你可以靠近一個相當簡單的,但有很多很多情況下它會失敗。我是所有發送電子郵件到一個假定的電子郵件地址作爲@Nick ODell建議(在做一些基本完整性檢查,它是否包含@
符號,是否存在域名部分,並有一個或多個MX/A/AAAA RR等)幷包括驗證鏈接。
也就是說,如果通過Unicode domain
你的意思是使用Punycode編碼的主機名稱的標籤,這些應該由任何中途能力驗證的正則表達式覆蓋,如編碼形式那些只是xn--
其次是定時定[a-z0-9-]
(不區分大小寫比較)。
相關問題
- 1. 電子郵件正則表達式
- 2. Javascript電子郵件正則表達式
- 3. Java正則表達式電子郵件
- 4. 電子郵件正則表達式Javascript
- 5. bash正則表達式電子郵件
- 6. 電子郵件正則表達式
- 7. 正則表達式CSV電子郵件
- 8. 電子郵件正則表達式PHP
- 9. jQuery電子郵件正則表達式
- 10. 電子郵件子域匹配的正則表達式
- 11. 新的unicode域如何通過電子郵件正則表達式來處理?
- 12. 正則表達式來替換電子郵件地址域?
- 13. 電子郵件正則表達式的單字符域名
- 14. 的Android的Java正則表達式電子郵件域
- 15. 正則表達式匹配電子郵件域地址
- 16. 正則表達式電子郵件驗證具有域指定
- 17. 默認域名爲電子郵件的正則表達式
- 18. 正則表達式從域名的電子郵件地址
- 19. 正則表達式,但不包括。在電子郵件阿迪的後綴
- 20. 簡單的電子郵件正則表達式,確保用戶包含點域?
- 21. 電子郵件正則表達式。這個正則表達式是否合適?
- 22. 正則表達式 - 驗證電子郵件域名和完整的郵件
- 23. 正則表達式(PHP)檢查子域的電子郵件格式
- 24. Splunk的正則表達式電子郵件表達
- 25. 電子郵件和'沒有電子郵件'的正則表達式
- 26. 電子郵件正則表達式失敗對某些電子郵件地址
- 27. 允許+在正則表達式電子郵件中驗證電子郵件
- 28. 正則表達式包括與其他正則表達式
- 29. 與正則表達式如下規則驗證電子郵件
- 30. 一些電子郵件規則的正則表達式
相關http://stackoverflow.com/questions/1698855/how-are-the-new-unicode-domains-going-to-be-handled-by-email-regexes – Damith