[英]Email validation in C# (within the page_load)
我對此很陌生:
我創建了一個簡單的表單,其中包含一個文本框和一個按鈕,基本上,當輸入的電子郵件地址正確時,下面顯示了一些結果(這是使用gridview控件)。
我想要做的是對表單進行某種形式的電子郵件驗證-但將驗證放置在page_load中(單擊按鈕內),而不是頁面本身后面的代碼。 我正在通過簡單的驗證來檢查是否已輸入電子郵件,否則顯示彈出窗口,並且在C#中電子郵件格式正確(abc@abc.com)
我假設僅在單擊按鈕(提交表單)時才會顯示詳細信息,如果不這樣做,為什么不添加RegularExpression驗證器並將其映射到文本框。 然后使用以下正則表達式來驗證電子郵件 。
\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b
這樣,它也會增加用戶體驗。 用戶不必等待發回郵件來獲取錯誤警報。
另一個正則表達式的郵件格式驗證這里 。
這已經在這里討論了 。
問題是沒有覆蓋整個RFC 5322語法的有效正則表達式。 所有常見的正則表達式(例如Shoban所說的正則表達式)都過於嚴格-例如:應該覆蓋頂級域名的末尾部分[AZ] {2,4}會將.museum電子郵件標記為無效; 但是還有很多更復雜的例子,例如最近才被允許的德國Umlauts(元音突變)。
我們的方法是檢查驗證控件中允許的電子郵件的超集而不是子集(例如,使用\\ w +([-+。'] \\ w +) @ \\ w +([-。] \\ w +) 。\\ w +([-。] \\ w +)*),並加深服務器上的檢查(甚至可以使用像這樣的Web服務)。
順便說一句, 這是一個更好的正則表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.