TOP

[ASP.net] regular expression validate

問題:使用者輸入E-MAIL時的格式錯誤,造成寄信時判斷問題解決方式:利用regular expression validate就可以排除使用者因為輸入錯誤e-mail造成的問題

要使用regular expression validate最好先知道他的符號的意思,不然就跟看外星文一樣,完全看不懂

E-Mail可以使用的驗證格式:"^([\w-\.]+)@(([\w-]+\.)+)([a-zA-Z]{2,4})$"

設計ASPX使用方式:

<asp:TextBox ID="email" runat="server">


<asp:RegularExpressionValidator ID="email_chk" runat="server" ErrorMessage="非E-MAIL 格式" ControlToValidate="email" ValidationExpression="^([\w-\.]+)@(([\w-]+\.)+)([a-zA-Z]{2,4})$">

原始檔ASPX.VB使用方式:

Dim EmailRegex As Regex = New Regex("^([\w-\.]+)@(([\w-]+\.)+)([a-zA-Z]{2,4})$")
EmailRegex.IsMatch(EMAIL)


基本的符號意思:

「^」表示是開始必須符合的格式
「$ 」表示是結尾必須符合的格式
「\w」表示英文或數字
「\d」表示只能為數字
「\.」表示 「.」,前面的 \ 為跳脫字元 (escape)
「\-」表示 「-」,前面的 \ 為跳脫字元 (escape)
「|」表示 or ,即左右兩邊只能出現其中一個
「+」表示出現 1 次以上
「*」表示出現 0 次以上
「A-Z」表示英文大寫 A ~ Z
「a-z」表示英文小寫 a ~ z
「0-9」表示數字 0 ~ 9,同「\d」
[A-Za-z0-9] 表示大小寫英文及數字的組合


E-Mail驗證格式拆解說明:
第一個部份^([\w-\.]+)@
「^」表示是開始必須符合的格式
「\w」表示英文或數字
「\.」表示 「.」,前面的 \ 為跳脫字元 (escape)
「+」表示出現 1 次以上
「@」表示E-MAIL使用的@
合併說明[\w-\.]+表示可以使用1次以上的英文或數字及小數點

第二個部份([\w-]+\.)+)
「\w」表示英文或數字
「+」表示出現 1 次以上
「\.」表示 「.」,前面的 \ 為跳脫字元 (escape)
合併說明([\w-]+\.)表示可以使用1次以上的英文或數字及小數點
合併說明(([\w-]+\.)+)
(1)([\w-]+\.)只能有一次COM.
(2)(([\w-]+\.)+)等於可以多次的([\w-]+\.)
     Ex: 
          GMAIL.COM.
          YAHOO.COM.TW
第三個部份([a-zA-Z]{2,4})
「A-Z」表示英文大寫 A ~ Z
「a-z」表示英文小寫 a ~ z
{2,4}表示2~4個位元


參考的資料來源:
http://www.cyut.edu.tw/~ckhung/b/re/intro.php
http://ithelp.ithome.com.tw/question/10094951
http://blog.roodo.com/rocksaying/archives/2670695.html
https://docs.google.com/a/gridow.com/document/d/1bUq0Jb1mLM7zmcVjDyLIX6UTLWGbKp-d99-w4rMrjvg/edit
http://www.cyut.edu.tw/~ckhung/b/gnu/regexp.php

http://ithelp.ithome.com.tw/question/10027862
http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/



0 意見:

張貼留言