ASP.net的验证控件浅析

①、数据格式验证控件(RegularExpressionValidator)


代码如下:

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="此用户名已注册过" ControlToValidate = "txtName" ValidationExpression = "\S+@\S+\.\S+"></asp:RegularExpressionValidator>

通过自定义正则表达式,与需验证的控件进行模式匹配。
以前面这段代码为例:
ErrorMessage属性表示当验证不合法时,出现错误的信息;
ControlToValidate属性表示需验证的控件ID;
ValidationExpression属性指定为验证条件的正则表达式;
在这里贴上常用正则表达式字符及其含义:


代码如下:

编号 正则表达式字符 含义
1 [……] 匹配括号中的任何一个字符
2 [^……] 匹配不在括号中的任何一个字符
3 \w 匹配任何一个字符(a~z、A~Z和0~9)
4 \W 匹配任何一个空白字符
5 \s 匹配任何一个非空白字符
6 \S 与任何非单词字符匹配
7 \d 匹配任何一个数字(0~9)
8 \D 匹配任何一个非数字(^0~9)
9 [\b] 匹配一个退格键字符
10 {n,m} 最少匹配前面表达式n次,最大为m次
11 {n,} 最少匹配前面表达式n次
12 {n} 恰恰匹配前面表达式n次
13 ? 匹配前面表达式0或1次 {0,1}
14 + 至少匹配前面表达式1次 {1,}
15 * 至少匹配前面表达式0次 {0,}
16 | 匹配前面表达式或后面表达式
17 (…) 在单元中组合项目
18 ^ 匹配字符串的开头
19 $ 匹配字符串的结尾
20 \b 匹配字符边界
21 \B 匹配非字符边界的某个位置

同时,列举几个常用的正则表达式:(有些是我自己用过的,有些是网上找的资料)


代码如下:

验证电子邮件:
"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*”
\S+@\S+\.\S+
验证网址:
"\S+://\S+\.\S+”
验证邮政编码:"\d{6}”
其他常用正则表达式:
表示0~9十个数字:"[0-9]”
表示任意个数字:"\d*”
表示中国大陆的固定电话号码:"\d{3,4}-\d{7,8}”
验证由两位数字、一个连字符再加5位数字组成的ID号:"\d{2}-\d{5}”

②、自定义验证控件(CustomValidator)
Default页面:


代码如下:

<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="此用户名已注册过" ControlToValidate = "txtName" OnServerValidate ="ValidateName">
</asp:CustomValidator>

Defalult.cs页面:


代码如下:

public void ValidateName(Object sender, ServerValidateEventArgs args)
{
SqlConnection myConn = new SqlConnection("Data Source=(local);Initial Catalog=Csharp;Integrated Security=True");
myConn.Open();
SqlCommand myCmd = new SqlCommand("select use_account from users", myConn);
SqlDataAdapter myDa = new SqlDataAdapter(myCmd);
DataSet myDs = new DataSet();
myDa.Fill(myDs);
for (int i = 0; i < myDs.Tables[0].Rows.Count; i++)
{
if (args.Value.ToString() == myDs.Tables[0].Rows[i][0].ToString())
{
args.IsValid = false;
break;
}
else
{
args.IsValid = true;
}
}
}

通过自定义服务器端的函数代码,与前台验证控件关联,形成一种假客户端—当前页面验证的效果。
以上面前台验证控件这段代码为例:
ErrorMessage属性表示当验证不合法时,出现错误的信息;
ControlToValidate属性表示需验证的控件ID;
OnServerValidate属性表示与自定义函数相关联,以在服务器上执行验证;

效果如下:

摘自 暗自在绽放

(0)

相关推荐

  • jQuery 验证插件 Web前端设计模式(asp.net)

    设计目标:建立一个基于jQuery框架的通用Web验证插件... 设计要求:1.需要漂亮的css样式及小图标的润饰... 2.基于jQuery框架... 3.调用.net Web 服务来实现与数据库的异步交互... 解决方案:1.首先,我们来设计三个类,分别用来显示Web给用户的视觉感知.它们分别是 .msg_warning{font-family:Arial,Helvetica,sans-serif,simsun; background:#e7f7ff url(register/MsgWarn

  • asp.net 继承自Page实现统一页面验证与错误处理

    复制代码 代码如下: isAdmin(); 因为当时没有用母版页去做,所以不能在母版页中统一判断权限,而当时我限于自己水平,也没有采用继承自Page这个类的方法去统一处理一些页面加载的时候都要处理的事情.现在根据"李天平(动软)"的一些代码记录下,也希望大家要学会使用继承啊! 看下一个简单的继承自Page的PageBase: 复制代码 代码如下: using System; using System.Data; using System.Configuration; using Sys

  • ASP.NET MVC5添加验证(4)

    有时候我们网站需要添加验证,这一节我们演示下怎样使用ASP.NET MVC5添加验证. 1.在Model类里面添加验证,代码如下: public class Movie { public int ID { get; set; } [StringLength(60,MinimumLength=3,ErrorMessage="主题的长度必须在3到60个字符")] public string Title { get; set; } [Display(Name="Release Da

  • 在ASP.NET 2.0中操作数据之三十九:在DataList的编辑界面里添加验证控件

    导言 到目前为止的讨论编辑DataList的教程里,没有包含任何验证用户的输入,即使是用户非法输入- 遗漏了product的name或者负的price- 会导致异常.在前面一章里我们学习了如何在DataList的UpdateCommand事件处理中添加异常处理代码,以便在出现异常时捕捉它并显示友好的错误信息.然而理想的编辑界面应该包含验证控件,用来在第一时间里阻止用户输入一些非法数据. 本章我们将学习在DataList的EditItemTemplate里添加验证控件从而提供一个更安全的编辑界面,

  • 详解ASP.NET MVC Form表单验证

    一.前言 关于表单验证,已经有不少的文章,相信Web开发人员也都基本写过,最近在一个个人项目中刚好用到,在这里与大家分享一下.本来想从用户注册开始写起,但发现东西比较多,涉及到界面.前端验证.前端加密.后台解密.用户密码Hash.权限验证等等,文章写起来可能会很长,所以这里主要介绍的是登录验证和权限控制部分,有兴趣的朋友欢迎一起交流. 一般验证方式有Windows验证和表单验证,web项目用得更多的是表单验证.原理很简单,简单地说就是利用浏览器的cookie,将验证令牌存储在客户端浏览器上,co

  • 在ASP.NET 2.0中操作数据之十九:给编辑和新增界面增加验证控件

    导言 在前面三节的示例中,GridView和DetailsView控件使用的是绑定列和CheckBoxField(绑定GridView和DetailsView时,通过智能标记可以令VS根据数据库自动增加对应的类型).当编辑GridView或者DetailsView中的一行时,非只读属性的绑定列将自动转为textbox,以便用户修改现有的数据.同样地,当在DetailsView控件中新增记录时,InsertVisible属性为true(默认值)的绑定列会呈现出空的textbox,以接受用户输入.C

  • ASP.NET中HTML页面的访问验证设置方法

    可能有很多朋友和我一样不会留意到这样的问题,在ASP.NET中,使用其自身提供的访问验证功能(表单验证.Passport 验证.Windows 验证),并不会对静态文件(如 html.图像文件.文本文件等)进行访问限制,即使这些文件置于需要验证后才能访问的文件夹下,匿名用户仍然可以访问到这些文件.这是因为静态文件默认是由 IIS 处理,IIS 在接收到对这些文件的请求后,并不会转交给 ASP.NET 处理,所以,在 ASP.NET 中的权限验证失去了作用.换句话说,这些文件不在ASP.NET 的

  • ASP.NET中Validation验证控件正则表达式特殊符号的说明

    RegularExpressionValidator控件表达式说明: 方括号"[ ]"用与定义可接受的字符.[abc123] 表示控件只能接受 a,b,c,1,2,3 这6个字符: 反集合符号 " ^ "用于定义不可以接受的字符.[^a-h] 表示控件除了 a 到 h 8个字符外,都可以接受: 花括号"{ }"定义必须输入的字符个数.{6}表示只能输入6个字符 : {6,}表示必须输入6个以上,无上限 : {2,6} 表示必须输入2至6个字符:但

  • ASP.NET表单验证方法详解第1/2页

    1.使用验证控件 这属于客户端验证,微软开发人员将最常用的验证功能进行了封装,使得我们开发效率明显提高,而且特别是自定义验证控件,非常灵活,我们可以自行设计验证逻辑.但是验证控件收到了浏览器的限制,记得在一次开发过程中,使用FireFox浏览器进行浏览,发现所有的验证控件失灵,这个并非是ASP.NET设计的漏洞,只能说浏览器标准的不唯一造成的. ASP.NET公有六种验证控件,分别如下: RequiredFieldValidator(必须字段验证) 用于检查是否有输入值 CompareValid

  • asp.net MaxLengthValidator 最大长度验证控件代码

    复制代码 代码如下: /// <summary> /// TextBox的最大长度验证器,如果是varchar,char字段类型,需要此验证 /// </summary> [Description("对MaxLength进行验证")] [ToolboxData("<{0}:MaxLengthValidator runat=server></{0}:MaxLengthValidator>")] public class

  • ASP.NETWeb服务器验证控件如何使用

    什么是验证控件? 希望用户输入正确的类型的数据,为了验证用户输入是否满足要求,必须对输入的值.范围或格式进行检查. .NET中验证控件在哪里? 在工具箱的验证分组里. 常用的ASP.NET控件几个?分别是什么? 1)CompareValidator控件:与给定值比较. 2)CustomValidator控件:用户自己定制校验逻辑 3)RangeValidator控件:检查控件的值是否在给定的有效范围内. 4)RegularExpressValidator控件:使用正则表达式验证用户输入的数据是否

随机推荐