ASP.NET数据验证控件详解

数据验证作用:
(1)定义外观。
(2)验证程序的显示方式:静态或者动态显示。
(3)分组显示错误信息。
(4)自定义服务器端的验证。
(5)自定义客户端的验证。
(6)正则表达式。
下面说说VS2005中提供的常用验证控件:
必须填写的:RequiredFiledValidator要求用户必须填写,否则不能进入下一个选项。
与某一个值相比较的:CompareValidator把用户输入的值与常数值或者特定数据类型的值进行比较(大于、小于、等于)。
某一个范围内的检查:RangeValidator检查用户输入的时候在指定的上下限内。
模式匹配:RegularExpressionValidator检查与正则表达式定义的模式是否匹配。这种常用来检查可以预知的字符序列,
比如:电子邮件,电话号码,邮政编码等等。
用户自定义:CustomValidator分为服务端和客户端验证。需要我们自己编写验证规则。

这里说说常用的正则表达式(详细请看我的正则表达式板块):
(1) [] 用于定以可以接收的字符,比如[wuwei]表示此控件只能接收w,u,e,i这几个字符。
(2) ^ 用于定义不能接收的字符,比如[^a-e]表示除了a到e之外可以接收的字符。
(3) {} 定义必须输入的字符个数。{1,}至少输入一个字符,[a-o]{5}表示输入5位a到o之间的字符。
(4) . 代表任意字符。比如.{4,10}表示接收4到10个任意字符。
(5) | 表示“逻辑或”。比如[1-9]{3,6}|[A-Za-z]{3}表示可以接收3到6个数字或者3个字母。
(6) () 用于分块,与{}类似。
(7) \ 转义字符。如:\([0-9]{3}\)定义3个数字的有括号的区号。

虽然可以利用VS2005自带的很多验证控件里面原有的正则表达式,但是还有很多需要我们自己去写。我在想"微软为何不提供一个我们自己增加正则表达式的功能了,这样的话我们把所有常用的都录入进去,就只需要用鼠标操作了,可惜不是这样唉!"这就需要我们用Regex类的isMatch方法自定义正则表达式。举个例子:很多后台在登陆的时候都需要填写自己的数据库名称,来防止非法用户登陆。验证过程如下代码:
 1protected void Page_Load(object sender, EventArgs e) 
 2
 3}
 
 4public bool validateTable(string str) //调用Regex类时,需引入using System.Text.RegularExpressions命名空间 
 5
 6return Regex.IsMatch(str, @"^(\w+$)|^([\u4E00-\u9FA5]{0,}$)"); 
 7}
 
 8protected void Button1_Click(object sender, EventArgs e) 
 9
10if (!validateTable(TextBox1.Text)) 
11
12Response.Write("<script>alert('您输入了不合法的数据表名称')</script>"); 
13}
 
14}
 
15

posted on 2008-03-24 11:41  CodeShark  阅读(3005)  评论(0编辑  收藏  举报

导航