RegularExpressionValidator Web 控件可以用來執行更詳細的驗證,也就是說可以做更細微的限制。其使用語法為:
<ASP:RegularExpressionValidator
Id="被程序代碼所控制的名稱"
Runat="Server"
ControlToValidate="要驗證的控件名稱"
ValidationExpression="驗證規則"
ErrorMessage="所要顯示的錯誤信息"
Text="未通過驗證時所顯示的訊息"
/>
其常用屬性說明如下表所示:
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 的字符,但是至少輸入一個字符。
下列范例限制使用者輸入的賬號,必需要以英文字母為開頭,而且最少要輸入四個字符,最多可輸入八個字符:
<Html>
<Form Id="Form1" Runat="Server">
賬號: <ASP:TextBox Id="txtId" Runat="Server"/>
<ASP:RegularExpressionValidator Id="Validor1" Runat="Server"
ControlToValidate="txtId"
ValidationExpression="[a-zA-Z]{4,8}"
Text="錯誤!"/><br>
<ASP:Button Id="btnOK" Text="確定" OnClick="btnOK_Click"
Runat="Server"/>
<ASP:Label Id="lblMsg" Runat="Server"/>
</Form>
<Script Language="VB" Runat="Server">
Sub btnOK_Click(Sender As Object,e As EventArgs)
If Page.IsValid Then
lblMsg.Text="驗證成功!"
End If
End Sub
</Script>
</Html>
下列程序代碼片段限制使用者輸入的電子郵件信箱,必須是包含「@」:
<ASP:RegularExpressionValidator Id="Validor1" Runat="Server"
ControlToValidate="txtEmail"
ValidationExpression=".+@.+"
Text="錯誤!"/>
下列程序代碼片段限制使用者輸入的電話號碼,必須要依使用習慣輸入分隔線:
<ASP:RegularExpressionValidator Id="Validor1" Runat="Server"
ControlToValidate="txtTel"
ValidationExpression="[0-9]{2,4}-[0-9]{3,4}-[0-9]{3,4}"
Text="錯誤!"/>