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="错误!"/>