我正在使用asp.net memebrlogin_control並獲取異常「參數'username'不能包含逗號。參數名稱:username」。我在此使用emailID作爲用戶名參數'username'不能包含逗號。參數名稱:用戶名
如何刪除此錯誤,並且我還想知道應該被禁止驗證電子郵件地址的字符列表是什麼。
我正在使用asp.net memebrlogin_control並獲取異常「參數'username'不能包含逗號。參數名稱:username」。我在此使用emailID作爲用戶名參數'username'不能包含逗號。參數名稱:用戶名
如何刪除此錯誤,並且我還想知道應該被禁止驗證電子郵件地址的字符列表是什麼。
在任何情況下,電子郵件地址都不允許使用逗號。如果您輸入不帶逗號的用戶名,會發生什麼情況?
嘗試使用正則表達式驗證用戶名字段,然後將其傳遞給您傳遞給它的任何方法。這裏有一個例子:
閱讀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-part
和domain
忽略一切,但dot-atom
規則,你會匹配共同或花園地址。有可能你的asp.net控件不接受所有有效的RFC2822地址,所以你應該檢查該文檔。
您可能會執行類似於「%<」十六進制代碼>「的技巧,將有效(或不是)電子郵件地址轉換爲您的控件可以接受的用戶名參數。
(O'Reilly出版的Mastering Regular Expressions用於對郵件地址的一個巨大的單頁正則表達式(主要是正確的),但它的消失在第3版)
名未逗號將正常工作對我來說。 我想知道在驗證電子郵件時應該禁止的所有可能的字符 – user255818 2010-01-21 13:54:43