<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="只能輸入數字" ControlToValidate="tbOrder" ValidationExpression ="^[0-9]*$">
</asp:RegularExpressionValidator>
ControlToValidate="要驗證的控件名稱"
ValidationExpression="驗證規則"
ErrorMessage="所要顯示的錯誤信息"
在使用RegularExpressionValidator驗證控件時的驗證功能及其驗證表達式介紹如下:
只能輸入數字:“^[0-9]*$”
只能輸入n位的數字:“^\d{n}$”
只能輸入至少n位數字:“^\d{n,}$”
只能輸入m-n位的數字:“^\d{m,n}$”
只能輸入零和非零開頭的數字:“^(0|[1-9][0-9]*)$”
只能輸入有兩位小數的正實數:“^[0-9]+(.[0-9]{2})?$”
只能輸入有1-3位小數的正實數:“^[0-9]+(.[0-9]{1,3})?$”
只能輸入非零的正整數:“^\+?[1-9][0-9]*$”
只能輸入非零的負整數:“^\-[1-9][0-9]*$”
只能輸入長度為3的字符:“^.{3}$”
只能輸入由26個英文字母組成的字符串:“^[A-Za-z]+$”
只能輸入由26個大寫英文字母組成的字符串:“^[A-Z]+$”
只能輸入由26個小寫英文字母組成的字符串:“^[a-z]+$”
只能輸入由數字和26個英文字母組成的字符串:“^[A-Za-z0-9]+$”
只能輸入由數字、26個英文字母或者下划線組成的字符串:“^\w+$”
驗證用戶密碼:“^[a-zA-Z]\w{5,17}$”正確格式為:以字母開頭,長度在6-18之間,只能包含字符、數字和下划線。
驗證是否含有^%&',;=?$\"等字符:“[^%&',;=?$\x22]+”
只能輸入漢字:“^[\u4e00-\u9fa5],{0,}$”
驗證Email地址:"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
驗證InternetURL:“^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$”
驗證電話號碼:“^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$”
正確格式為:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
驗證身份證號(15位或18位數字):“\d{17}[\d|X]|\d{15}”
驗證一年的12個月:“^(0?[1-9]|1[0-2])$”正確格式為:“01”-“09”和“1”“12”
驗證一個月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”
正確格式為:“01”“09”和“1”“31”
ValidationExpression 驗證規則
其中ValidationExpression 驗證規則屬性為限制數據所輸入的敘述,其常用符號如下表所示:
[] 符號
「[]」符號可以用來定義接受的單一字符,例如:
[a-zA-Z] 只接受a-z 或是A-Z 的英文字符。
[x-zX-Z] 只接收小寫的x-z 或大寫的X-Z。
[win] 只接收w、i、n 的英文字母。
[^linux] 除了l、i、n、u、x 之外的英文字母都接收。
{} 符號
「{}」符號可以用來表示接收多少字符,例如:
[a-zA-Z]{4} 表示接受只接收四個字符。
[a-z]{4} 表示只接收共四個a-z 小寫字符。
[a-zA-Z]{4,6} 表示最少接受四個字符,最多接受六個字符。
[a-zA-Z]{4,} 表示最少接受四個字符,最多不限制。
.符號
「.」符號可以用來表示接收除了空白外的任意字符,例如:
.{4} 表示接收四個除了空白外的任意字符。
*符號
「*」符號表示最少0 個符合,最多到無限多個字符。例如:
[a-zA-Z]* 表示不限制數目,接受a-z 或A-Z 的字符,也可以不輸入。
+符號
「+」符號表示最少1 個符合,最多到無限多個字符。例如:
[a-zA-Z]+ 表示不限制數目,接受a-z 或A-Z 的字符,但是至少輸入一個字符。
下列范例限制使用者輸入的賬號,必需要以英文字母為開頭,而且最少要輸入四個字符,最多可輸入八個字符:
===========================================================
C#驗證控件的使用方法
ASP.NET為開發人員提供了一整套完整的服務器控件來驗證用戶輸入的信息是否有效。這些控件如下:
1、RequiredFieldValidator:驗證一個必填字段,如果這個字段沒填,那么,將不能提交信息。
2、CompareValidator:比較驗證。比較兩個字段值是否相等,如密碼和確認密碼兩個字段是否相等;比較一個字段與一個具體的值。
3、RangeValidator:范圍驗證。驗證一個字段是否在某個范圍中,如成績字段要是0~100范圍中。
4、RegularExpressionValidator:正則表達式驗證。它根據正則表達式來驗證用戶輸入字段的格式是否合法,如電子郵件、身份證、電話號碼等。
5、CustomValidator:在運行定制的客戶端JavaScript或VBScript函數時,可以使用這個控件。
那么,如何使用驗證控件呢?
1、使用Visual Studio .NET 2003 命令提示工具運行aspnet_regiis -c命令復制ASP.NET客戶端腳本文件。
2、把驗證控件放在要驗證的控件右邊。如圖
3、修改驗證控件的ControlToValidate屬性為要驗證的控件名。
4、把驗證控件的ErrorMessage屬性修改更具體的錯誤描述信息,如“請輸入正確的電子郵件密碼”、“密碼不一致”、“必填字段”等。
5、如果是使用RequiredFieldValidator必填驗證控件,到這步就OK了。但是,如果使用的是其它幾個控件,還需要作以下設置:
A、CompareValidator控件,比較兩個控件的值,要設置ControlToCompare、Operator和Type屬性。如果是要比較一個控件和一個具體的值,需要修改ValueToCompare、Operator和Type屬性。
B、RangeValidator控件,分別在MinimunValue和MaximumValue屬性中設置最小值和最大值,還需要把Type屬性改為Currency或Integer。
C、RegularExpress控件:通過ValidationExpress屬性,從列表中選擇一個新的正則表達式。
最后,需要注意的是,每一個字段都可以使用多個不周類型的驗證控件進行驗證。
現在ASP.NET,你不但可以輕松的實現對用戶輸入的驗證,而且,還可以選擇驗證在服務器端進行還是在客戶端進行,再也不必考慮那么多了,程序員們可以將重要精力放在主程序的設計上了。
ASP.NET公有六種驗證控件,分別如下:
控件名 功能描敘
RequiredFieldValidator(必須字段驗證) 用於檢查是否有輸入值
CompareValidator(比較驗證) 按設定比較兩個輸入
RangeValidator(范圍驗證) 輸入是否在指定范圍
RegularExpressionValidator(正則表達式驗證) 正則表達式驗證控件
CustomValidator(自定義驗證) 自定義驗證控件
ValidationSummary(驗證總結) 總結驗證結果
下面,我們來看這些控件的使用:
一、RequiredFieldValidator(必須字段驗證)的使用
RequiredFieldValidator控件使用的標准代碼如下:
<ASP:RequiredFieldValidator id="Validator_Name" Runat="Server"
ControlToValidate="要檢查的控件名"
ErrorMessage="出錯信息"
Display="Static|Dymatic|None"
>
占位符
</ASP: RequiredFieldValidator >
在以上標准代碼中:
ControlToValidate:表示要進行檢查控件ID;
ErrorMessage:表示當檢查不合法時,出現的錯誤信息;
Display:錯誤信息的顯示方式;Static表示控件的錯誤信息在頁面中占有肯定位置;Dymatic表示控件錯誤信息出現時才占用頁面控件;None表示錯誤出現時不顯示,但是可以在ValidatorSummary中顯示;
占位符:表示Display為Static時,錯誤信息占有"占位符"那么大的頁面空間;
現在,讓我們看一個實例:
<ASP:TextBox id="txtName" RunAt="Server"/>
<ASP:RequiredFieldValidator id="Validator1" Runat="Server"
ControlToValidate="txtName"
ErrorMessage="姓名必須輸入"
Display="Static">
*姓名必須輸入
</ASP:RequiredFieldValidator>
在以上例子中,檢查txtName控件是否有輸入,如果沒有,顯示錯誤信息"姓名必須輸入"。是不是很簡單?
注意:以上代碼和下面其他控件的代碼最好放入Form中,和ASP中不一樣的是,Form最好寫為這樣:
<Form RunAt="Server">
其他代碼
</Form>
這樣,Form在服務器端執行,提交才會有效;
二、CompareValidator(比較驗證)控件
比較控件比較兩個控件的輸入是否符合程序設定,大家不要把比較僅僅理解為"相等",盡管相等是用的最多的,其實,這里的比較包括范圍很廣,大家看標准代碼就會明白。
比較控件的標准代碼如下:
<ASP:CompareValidator id="Validator_ID" RunAt="Server"
ControlToValidate="要驗證的控件ID"
errorMessage="錯誤信息"
ControlToCompare="要比較的控件ID"
type="String|Integer|Double|DateTime|Currency"
operator="Equal|NotEqual|GreaterThan|GreaterTanEqual|LessThan|LessThanEqual|DataTypeCheck"
Display="Static|Dymatic|None"
>
占位符
</ASP:CompareValidator>
在以上標准代碼中:
Type表示要比較的控件的數據類型;
Operator表示比較操作(也就是剛才說的為什么比較不僅僅是"相等"的原因),這里,比較有7種方式;
其他屬性和RequiredFieldValidator相同;
在這里,要注意ControlToValidate和ControlToCompare的區別,如果operate為GreateThan,那么,必須ControlToCompare大於ControlToValidate才是合法的,這下,應該明白它們兩者的意義了吧?例子程序請參考RequiredFieldValidator控件,對照標准代碼自己設計。
三、RangeValidator(范圍驗證)控件
驗證輸入是否在一定范圍,范圍用MaximumValue(最大)和MinimunVlaue來確定,標准代碼如下:
<ASP:RangeValidator id="Vaidator_ID" Runat="Server"
controlToValidate="要驗證的控件ID"
type="Integer"
MinimumValue="最小值"
MaximumValue="最大值"
errorMessage="錯誤信息"
Display="Static|Dymatic|None"
>
占位符
</ASP:RangeValidator>
在以上代碼中:
用MinimumValue和MaximumValue來界定控件輸入值得范圍,用type來定義控件輸入值的類型。
四、RegularExpresionValidator(正則表達式)控件
正則表達式驗證控件的功能非常強大,你可以自己容易構造驗證方式,我們先來看看標准代碼:
<ASP:RegularExpressionValidator id="Validator_ID" RunAt="Server"
ControlToValidate="要驗證控件名"
ValidationExpression="正則表達式"
errorMessage="錯誤信息"
display="Static"
>
占位符
</ASP:RegularExpressionValidator>
在以上標准代碼中,ValidationExpression是重點,現在來看看它的構造:
在ValidationExpression中,不同的字符表示不同的含義:
"."表示任意字符;
"*"表示和其他表達式一起,表示容易組合;
"[A-Z]"表示任意大寫字母;
"\d"表示容易一個數字;
注意,在以上表達式中,引號不包括在內;
舉例:
正則表達式:".*[A-Z]"表示數字開頭的任意字符組合其后接一個大寫字母。
五、ValidationSummary(驗證總結)控件
該控件收集本頁的所有驗證錯誤信息,並可以將它們組織以后再顯示出來。其標准代碼如下:
<ASP:ValidationSummary id="Validator_ID" RunAT="Server"
HeaderText="頭信息"
ShowSummary="True|False"
DiaplayMode="List|BulletList|SingleParagraph"
>
</ASP: ValidationSummary >
在以上標准代碼中,HeadText相當於表的HeadText,DisplayMode表示錯誤信息顯示方式:List相當於HTML中的
;BulletList相當於HTML中的<LI>;SingleParegraph表示錯誤信息之間不作如何分割;
六、CustomValidator(自定義驗證)控件
該控件用自定義的函數界定驗證方式,其標准代碼如下:
<ASP:CustomValidator id="Validator_ID" RunAt="Server"
controlToValidate="要驗證的控件"
onServerValidateFunction="驗證函數"
errorMessage="錯誤信息"
Display="Static|Dymatic|None"
>
占位符
</ASP: CustomValidator >
以上代碼中,用戶必須定義一個函數來驗證輸入。