2010-01-21 78 views

回答

0

在任何情況下,電子郵件地址都不允許使用逗號。如果您輸入不帶逗號的用戶名,會發生什麼情況?

+0

名未逗號將正常工作對我來說。 我想知道在驗證電子郵件時應該禁止的所有可能的字符 – user255818 2010-01-21 13:54:43

0

閱讀RFC 2822爲完整的電子郵件地址的語法。如果你通過BNF工作,你會發現"@,@"@foo.bar是非常好的,如果不尋常的話。

atext   =  ALPHA/DIGIT/; Any character except controls, 
         "!"/"#"/ ; SP, and specials. 
         "$"/"%"/ ; Used for atoms 
         "&"/"'"/
         "*"/"+"/
         "-"/"/"/
         "="/"?"/
         "^"/"_"/
         "`"/"{"/
         "|"/"}"/
         "~" 

atom   =  [CFWS] 1*atext [CFWS] 

dot-atom  =  [CFWS] dot-atom-text [CFWS] 

dot-atom-text =  1*atext *("." 1*atext) 

和3.4.1節:你問的規則,不過,可以在3.2.4節找到

addr-spec  =  local-part "@" domain 

local-part  =  dot-atom/quoted-string/obs-local-part 

domain   =  dot-atom/domain-literal/obs-domain 

如果您在local-partdomain忽略一切,但dot-atom規則,你會匹配共同或花園地址。有可能你的asp.net控件不接受所有有效的RFC2822地址,所以你應該檢查該文檔。

您可能會執行類似於「%<」十六進制代碼>「的技巧,將有效(或不是)電子郵件地址轉換爲您的控件可以接受的用戶名參數。

O'Reilly出版的Mastering Regular Expressions用於對郵件地址的一個巨大的單頁正則表達式(主要是正確的),但它的消失在第3版)

相關問題