透明 发表于 2015-1-16 23:44:33

ASP网页编程之复杂的表单考证类 ASP Validator

在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。表单考证|表单考证以后版本:ver0.1beta下载:http://nowgoo.zhuosong.com/validator.rar1、ASPValidator简介ASPValidator是基于ASP的一个表单考证类,用于表单的服务器端考证。好比,考证表单中一个文本框(假定元素名为UserEmail)的值是不是为准确的电子邮件格局,按传统的办法您大概会编写如许的代码:DimstrEmail,objRegExpstrEmail=Trim(Request.Form("UserEmail")SetobjRegExp=NewRegExpWithobjRegExp.Global=False.IgnoreCase=True.Pattern="^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$"EndWithIfobjRegExp.Test(strEmail)=FalseThenResponse.Write("不法的电子邮件格局")SetobjRegExp=NothingEndIf而利用ASPValidator时您大概会编写以下代码:DimobjValidatorSetobjValidator=NewValidatorobjValidator.Add"UserEmail","Email","不法的电子邮件格局",""IfNotobjValidator.ValidateThenResponse.Write(objValidator.Err)SetobjValidator=NothingEndIf上例中,固然传统办法更显得直不雅,并且代码行数也没多几,可是在实践使用中,常常会碰着对多个表单位素举行多种划定规矩考证的情形,这时候您不能不为每个元素的每种考证划定规矩编写代码,固然能够经由过程将经常使用函数写进包括文件的体例来加重休息强度,但仍必要消费大批的工夫和精神来编写反复的代码片段(最少您必要写有数个Request.Form("")、IfThen、……)。这时候,利用ASPValidator的优胜性便表现出来了。上例中,我们利用了ASPValidator的Add办法、Validate办法和Err属性。利用ASPValidator时,我们先经由过程Add办法增加必要考证的划定规矩,然后经由过程Validate办法实行考证并失掉考证了局,最初经由过程Err属性失掉堕落信息(假如有的话)。在ASPValidator中,我们把全部考证义务分化成多少条“划定规矩”,经由过程Add办法来增加划定规矩。Add办法的函数原型以下:PublicSubAdd(Element,RegType,ErrMsg,Para)Add办法包括四个参数:表单位素名、划定规矩范例、堕落信息、划定规矩参数。在上例中,表单位素名为"UserEmail",划定规矩范例为"Email",堕落信息为"不法的电子邮件格局",划定规矩参数为空。在ASPValidator中,我们将划定规矩范例分为两种:正则类和非正则类。关于正则类划定规矩,我们只需给出划定规矩范例(好比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个字节)。如今ASPValidator撑持以下划定规矩范例:划定规矩范例考证功效备注Chinese中文正则范例Currency泉币格局正则范例Custom自界说正则表达式非正则范例Double实数正则范例English英文正则范例Equal即是某个值非正则范例Integer整数正则范例Length字符串长度非正则范例Number数字正则范例Phone德律风号码格局正则范例QQQQ号码正则范例Require必填项正则范例URL基于HTTP协定的网址格局正则范例Zip邮政编码正则范例2、利用ASPValidator例1:一个用户注册表单实例’-----------------------------------------------Register.asp<--#includefile="validate.cls.asp"-->例1中我们利用了带{}标志的Equal划定规矩,它暗示与表单中某一元素的值相称,详细信息请参考Equal划定规矩用法。Equal划定规矩另有更初级的用法:例2:一个用户登录表单实例’-----------------------------------------------CheckLogin.asp<--#includefile="validate.cls.asp"--><--#includefile="md5.asp"-->例2中,我们利用了以"SQL:"引诱的Equal划定规矩参数,它暗示与某一纪录集(单列)作对照,假如在纪录中能找到相称的值,则以为切合划定规矩。别的,我们还利用了AddElement办法,它的感化是往ASPValidator中增加一个“假造”的元素,由于必要将用户提交的暗码举行Md5加密,而ASPValidator并没有集成Md5()函数。固然,您也能够这么写:.Update"Password",md5(trim(request.form("Password"))).Add"Password","Equal","用户名与暗码不符","SQL:SELECTPasswordFROMWHEREUserName=’{UserName}’"3、关于ASPValidator感激我佛隐士。他写的Validator(Javascript写的客户端考证器)很有用,并让我萌生了写ASPValidator的念头。共同Validator利用效果更佳。感激我的兄弟BeginXtu、Ralfmmx。他们测试了ASPValidator并提了良多倡议。这是我进修ASP以来第一次写类,不敷的地方还恳请人人品评斧正。ASPValidator是收费的,您能够在任何场所中自在地利用它。</p>结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。

兰色精灵 发表于 2015-1-20 11:37:07

我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.

透明 发表于 2015-1-20 11:37:07

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

爱飞 发表于 2015-1-24 09:49:51

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

蒙在股里 发表于 2015-1-25 11:15:26

下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...

飘飘悠悠 发表于 2015-2-2 21:48:41

ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。

莫相离 发表于 2015-2-8 07:37:11

那么,ASP.Net有哪些改进呢?

谁可相欹 发表于 2015-2-25 00:17:19

Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write

愤怒的大鸟 发表于 2015-3-7 14:36:33

Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)

分手快乐 发表于 2015-3-15 07:33:47

封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。

海妖 发表于 2015-3-21 20:42:05

用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
页: [1]
查看完整版本: ASP网页编程之复杂的表单考证类 ASP Validator