regularexprionvalidator控件用于對輸入控件的驗證,是否符合使用者自定義的模式相比對,該驗證類型允許檢查可預知的字元序列,如社會保障号、電子郵件位址、電話号碼、郵政編号,ip位址等重的字元序列。正規表達式驗證文法可分為用戶端和伺服器端的。用戶端使用的是JScript正規表達式文法,伺服器端是使用的regex文法,一般建議使用JScript,因為JScript是regex的子集,文法的統一性可以再用戶端和伺服器端得到同樣的結果。
regularexpressionvalidator的屬性:
ValidationExpression 擷取或設定确定字段驗證模式的正規表達式。
?
問号代表前面的字元最多隻可以出現一次。(0次、或1次)。例如,“colou?r”可以比對color或 者colour;
+
加号代表前面的字元必須至少出現一次。(1次、或多次)。例如,“goo+gle”可以比對google、gooogle、goooogle等;
*
星号代表前面的字元可以不出現,也可以出現一次或者多次。(0次、或1次、或多次)。例如,“0*42”可以比對42、042、0042、00042等。
執行個體html代碼:
body>
<form id="form1" runat="server">
<div style="text-align:center">
示範正規表達式控件
<hr style="width:50%" />
填寫學生個人資訊<br />
學生姓名:
<asp:TextBox ID="name" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="REValidator1" runat="server"
ErrorMessage="姓名格式不對" ControlToValidate="name"
ValidationExpression="\w{4,12}">*</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator runat="server" ID="RQfile" ControlToValidate="name" ErrorMessage="姓名不能為空">*</asp:RequiredFieldValidator><br />
出生日期:
<asp:TextBox ID="birth" runat="server" ></asp:TextBox>
<asp:RegularExpressionValidator runat="server" ID="REValidator2" ErrorMessage="日期格式不對" ControlToValidate="birth"
ValidationExpression="\d{4}([/-])+\d{1,2}([/-])+\d{1,2}">*</asp:RegularExpressionValidator><br />
聯系電話:
<asp:TextBox runat="server" ID="tel"></asp:TextBox>
<asp:RegularExpressionValidator runat="server" ID="REValidator3" ErrorMessage="電話格式不對" ControlToValidate="tel"
ValidationExpression="\d{11}|(\d{3,4}-)?\d{7,8}">*</asp:RegularExpressionValidator> <br />
電子郵件:
<asp:TextBox runat="server" ID="email"></asp:TextBox>
<asp:RegularExpressionValidator ID="REValidator4" runat="server" ErrorMessage="電話格式不對" ControlToValidate="email"
ValidationExpression="\w+([+-.])*@\w+([-.]\w)*\.\w+([-.]\w)*">*</asp:RegularExpressionValidator><br />
<asp:Button runat="server" ID="Button1" Text="送出" OnClick="button_Click"/><br />
<asp:Label ID="Label1" runat="server" Width="353px" ForeColor="Red"></asp:Label>
</div>
</form>
</body>
c#源代碼:
protected void button_Click(object sender, EventArgs e)
{
//驗證提示
if (Page.IsValid)
Label1.Text = "驗證成功";
}
其在浏覽器中效果如下:
電子郵件正規表達式解析:
\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*這是vs2003中正規表達式編輯器生成的電子郵件的正則表達 式,它的意思是:\w+ 必須以一個a-z,a-z,0-9或_這些字元中的一個開頭。([-+.]\w+)* 的意思是:允許0個或是多個-+.a或-+.aa這樣的字元,也就是說,到這裡為止,郵件的位址可以是:a-aa+aaa.aaa這種作為開頭。接下來@ 就不用解釋了,郵件必須的東西。 \.比對小數點本身,當小數點沒有在[]中是,要比對它必須進行轉義。
在網上找的一些常用的正規表達式的例子:
1.驗證使用者名和密碼:("^[a-zA-Z]\w{5,15}$")正确格式:"[A-Z][a-z]_[0-9]"組成,并且第一個字必須為字母 6~16位;
2.驗證電話号碼:("^(\d{3.4}-)\d{7,8}$")正确格 式:xxx/xxxx-xxxxxxx/xxxxxxxx;
3.驗證身份證号(15位或18位數字):("^\d{15}|\d{18}$");
4.驗證Email位址:("^\w+([-+.]\w+)*@\w+([-.]\w+)* \.\w+([-.]\w+)*$");
5.隻能輸入由數字和26個英文字母組成的字元串:("^[A-Za-z0-9]+$") ;
6.整數或者小數:^[0-9]+\.{0,1}[0-9]{0,2}$
7.隻能輸入數字:"^[0-9]*$"。
8.隻能輸入n位的數字:"^\d{n}$"。
9.隻能輸入至少n位的數字:"^\d{n,}$"。
10.隻能輸入m~n位的數字:。"^\d{m,n}$"
11.隻能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
12.隻能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
13.隻能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
14.隻能輸入非零的正整數:"^\+?[1-9][0-9]*$"。
15.隻能輸入非零的負整數:"^\-[1-9][]0-9"*$。
16.隻能輸入長度為3的字元:"^.{3}$"。
17.隻能輸入由26個英文字母組成的字元串:"^[A-Za-z]+$"。
18.隻能輸入由26個大寫英文字母組成的字元串:"^[A-Z]+$"。
19.隻能輸入由26個小寫英文字母組成的字元串:"^[a-z]+$"。
20.驗證是否含有^%&',;=?$\"等字元:"[^%& ',;=?$\x22]+"。
21.隻能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"
22.驗證URL:"^http://([\w-]+\.)+[\w-]+(/[\w-. /?%&=]*)?$"。
23.驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正确格式 為:"01"~"09"和"1"~"12"。
24.驗證一個月的31天:"^((0?[1-9])|((1|2) [0-9])|30|31)$"正确格式為;"01"~"09"和"1"~"31"。
注意:以上常用正規表達式中用^開始,以$結尾。
自己要認真看明白!!!!!!
本文轉自shenzhoulong 51CTO部落格,原文連結:http://blog.51cto.com/shenzhoulong/304834,如需轉載請自行聯系原作者