- 注册时间
- 2006-6-1
- 最后登录
- 2012-5-20
- 阅读权限
- 255
- 积分
- 3161
- 精华
- 0
- 帖子
- 3161
  
- 性别
- 男
- 听众数
- 15
- 买家信用
 - 卖家信用
 - 在线时间
- 1426 小时
- 相册
- 0
|
发表于 2006-10-27 10:32:00
|显示全部楼层
回复
|
[vscript]ErrorMessage="Invalid name"><br> </asp:regularexpressionvalidator><br></form><br><br> 在上面的代码中,正则表达式被用于限定输入的名字为字母(允许大写字母和小写字母),空格,单名省略号象O'Dell和句点.此外,输入的字符长度被限定在40个字符.<br><br> 注意 正则表达式验证控件(RegularExpressionValidator)会自动加入脱字符(^)和美元符号($)作为开始和结束的分隔符.如果你没有在自定义的表达式中加入他们那么最好加入.加入分隔符只是为了让你的表达式得到想要的那部分数据内容.<br><br> 使用正则表达式类(Regex Class)<br><br> 如果你没有使用服务器端的控件(意味着你不能使用验证控件),或者你需要其它的输入字段源而非表单字段(比如查询字串参数和cookies),那么你可以使用正则表达式类(Regex class).<br><br> 使用正则表达式类<br><br>加入使用using前缀的语句导入System.Text.RegularExpressions命名空间. <br>确认正则表达式包含"^"和"$"(字串开始处,字串结束处). <br>调用Regex类的IsMatch方法,下面是代码示例. <br>//<br>Instance method:<br><br>Regex reg = new Regex(@"^[a-zA-Z'.\s]{1,40}$");<br>Response.Write(reg.IsMatch(txtName.Text));<br>//<br>Static method:<br><br>if (!Regex.IsMatch(txtName.Text,@"^[a-zA-Z'.\s]{1,40}$")) <br><br><br>{<br> <br>//<br>Name does not match expression<br><br>}<br><br> 如果你不能把经常使用的正则表达式缓存起来,你应该使用IsMatch静态方法来改进性能防止不必要的对象创建过程.<br><br> 验证数字字段<br><br> 在大多数情况下,应该验证数字的输入和范围.使用服务器控件验证数字字段的输入和范围,使用RangeValidator控件.RangeValidator支持货币,日期,整型,双精度和字符串类型的数据.<br><br> 使用RangeValidator控件需要设置需要验证的控件名(ControlToValidate),类型(Type),最小值(MinimumValue),最大值(MaximumValue),和出错提示信息(ErrorMessage)属性.下面是代码示例 : <br><br><asp:RangeValidator <br> ID="RangeValidator1" <br> Runat="server" <br> ErrorMessage="Invalid range. Number must be between 0 and 255."<br> ControlToValidate="rangeInput" <br> MaximumValue="255" <br> MinimumValue="0" Type="Integer" /><br><br> 如果你没使用服务器控件,你可以将输入值转化成整型再进行验证来完成对数字的范围验证.例如,要验证一个整数是否合法,使用ASP.NET2.0提供的新方法Int32.TryParse将输入值转化为System.Int32的变量类型.这个方法会在转换失败时返回false.<br><br>Int32 i;<br>if (Int32.TryParse(txtInput.Text, out i) == false)<br><br><br>{<br> <br>//<br>Conversion failed<br><br>}<br><br> 如果你使用早先的ASP.NET版本,可以在try/catch语句块中 使用Int32.Parse或者Convert.ToInt32方法并可以在转换失败时处理抛出的FormatException错误.<br><br> 下面的示例代码演示了如何验证来自HTML文本框的整数类型的类型和范围.<br><br><%@ Page Language="C#" %><br><script runat="server"><br> void Page_Load(object sender, EventArgs e)<br> <br><br>{<br> if (Request.RequestType == "POST")<br> <br><br>{<br> int i;<br> if (Int32.TryParse(Request.F<br>orm["integerTxt"], out i) == true)<br> <br>{<br> <br>//<br>TryParse returns true if the conversion succeeds<br><br> if ((0 <= i && i <= 255) == true)[/vscript]<br>源码如上: |
|