分享
 
 
 

简单的表单验证类 ASP Validator

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

当前版本:ver 0.1 beta

下载:http://nowgoo.zhuosong.com/validator.rar

1、ASP Validator 简介

ASP Validator 是基于 ASP 的一个表单验证类,用于表单的服务器端验证。比如,验证表单中一个文本框(假设元素名为 UserEmail)的值是否为正确的电子邮件格式,按传统的方法您可能会编写这样的代码:

Dim strEmail, objRegExp

strEmail = Trim(Request.Form("UserEmail")

Set objRegExp = New RegExp

With objRegExp

.Global = False

.IgnoreCase = True

.Pattern = "^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"

End With

If objRegExp.Test(strEmail) = False Then

Response.Write("非法的电子邮件格式")

Set objRegExp = Nothing

End If

而使用 ASP Validator 时您可能会编写如下代码:

Dim objValidator

Set objValidator = New Validator

objValidator.Add "UserEmail", "Email", "非法的电子邮件格式", ""

If Not objValidator.Validate Then

Response.Write(objValidator.Err)

Set objValidator = Nothing

End If

上例中,虽然传统方法更显得直观,而且代码行数也没多多少,但是在实际应用中,经常会碰到对多个表单元素进行多种规则验证的情况,这时您不得不为每一个元素的每一种验证规则编写代码,虽然可以通过将常用函数写进包含文件的方式来减轻劳动强度,但仍需要花费大量的时间和精力来编写重复的代码片断(起码您需要写无数个 Request.Form("")、If Then 、……)。这时,使用 ASP Validator 的优越性便体现出来了。

上例中,我们使用了 ASP Validator 的 Add 方法、Validate 方法和 Err 属性。使用 ASP Validator 时,我们先通过 Add 方法添加需要验证的规则,然后通过 Validate 方法执行验证并得到验证结果,最后通过 Err 属性得到出错信息(如果有的话)。在 ASP Validator 中,我们把整个验证任务分解成若干条“规则”,通过 Add 方法来添加规则。Add 方法的函数原型如下:

Public Sub Add(Element, RegType, ErrMsg, Para)

Add 方法包含四个参数:表单元素名、规则类型、出错信息、规则参数。在上例中,表单元素名为 "UserEmail",规则类型为 "Email",出错信息为 "非法的电子邮件格式",规则参数为空。

在 ASP Validator 中,我们将规则类型分为两种:正则类和非正则类。对于正则类规则,我们只需给出规则类型(比如 Email 规则),不需需要规则参数。而对于非正则类规则(如 Length 规则),我们可能还需给出规则参数,比如验证一个表单元素(假设为 UserName)值的长度是否在 6 到 12 字节之间(一个数字或字母算一个字节,一个汉字算两个),您需要编写如下代码:

objValidator.Add "UserName", "Length", "用户名长度必须在 6 到 12 字节之间", "6,12"

上例中,我们为 Length 规则指定了规则参数 "6,12",它指示了 Length 规则的最小长度和最大长度。对于非正则类规则,您需要查阅 程序员参考 来获悉每一种规则的参数格式。比如,Length 规则的参数格式为 "n,m",n 和 m 分别代表最小长度和最大长度,如果省略则代表不限(即 ",6" 代表最长为 6 个字节,"4," 代表最小 4 个字节)。

现在 ASP Validator 支持如下规则类型:

规则类型 验证功能 备注

Chinese 中文 正则类型

Currency 货币格式 正则类型

Custom 自定义正则表达式 非正则类型

Double 实数 正则类型

English 英文 正则类型

Equal 等于某个值 非正则类型

Integer 整数 正则类型

Length 字符串长度 非正则类型

Number 数字 正则类型

Phone 电话号码格式 正则类型

QQ QQ号码 正则类型

Require 必填项 正则类型

URL 基于HTTP协议的网址格式 正则类型

Zip 邮政编码 正则类型

2、使用 ASP Validator

例1:一个用户注册表单实例

'-----------------------------------------------Register.asp

例1 中我们使用了带 {} 标记的 Equal 规则,它表示与表单中某一元素的值相等,具体信息请参考 Equal 规则用法。Equal 规则还有更高级的用法:

例2:一个用户登录表单实例

'-----------------------------------------------CheckLogin.asp

例2 中,我们使用了以 "SQL:" 引导的 Equal 规则参数,它表示与某一记录集(单列)作比较,如果在记录中能找到相等的值,则认为符合规则。此外,我们还使用了 AddElement 方法,它的作用是往 ASP Validator 中添加一个“虚拟”的元素,因为需要将用户提交的密码进行 Md5 加密,而 ASP Validator 并没有集成 Md5() 函数。当然,您也可以这么写:

.Update "Password", md5(trim(request.form("Password")))

.Add "Password", "Equal", "用户名与密码不符", "SQL:SELECT Password FROM [Users] WHERE UserName='{UserName}'"

3、关于 ASP Validator

感谢 我佛山人。他写的 Validator(Javascript写的客户端验证器)很实用,并让我萌发了写 ASP Validator 的动机。配合 Validator 使用效果更佳。

感谢我的兄弟BeginXtu、Ralfmmx。他们测试了 ASP Validator 并提了很多建议。

这是我学习 ASP 以来第一次写类,不足之处还恳请大家批评指正。ASP Validator 是免费的,您可以在任何场合中自由地使用它。如果您对它作了改进,请发邮件给我(Nowgoo at Gmail dot Com),谢谢!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有