仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 382|回复: 7
打印 上一主题 下一主题

[学习教程] ASP网页设计ASP用“正则表达式工具”来校验数据的合...

[复制链接]
深爱那片海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:22:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。工具|数据|正则  在ASP顶用“正则表达式工具”来校验数据的正当性
  我们在制造网站的时分,特别是各类电子商务网站,起首城市让用户填写一些表格来猎取注册用户的各类信息,由于用户有大概输出形形色色的信息,而有些不切合请求的数据会给我们的后端ASP处置程序带来不用要的贫苦,乃至招致网站呈现一些平安成绩。因而我们在将这些信息保留到网站的数据库之前,要对这些用户所输出的信息举行数据的正当性校验,以便前面的程序能够平安顺遂的实行。以是我们一样平常会在后端编写一个ASP的校验程序来剖析用户输出的数据是不是是正当的。
  也许有人会问了,利用运转在客户真个JavaScript不是能够更好更快的来校验用户的数据吗?切实其实,如许在年夜多的情形下是能够的,为何是年夜多情形下呢?由于你编写的JavaScript纷歧定能够完整一般的同时运转在IE和Netscape下面,由于微软的Jscript其实不全和JavaScript不异,再加上另有一些扫瞄器纷歧定和微软和Netscape兼容的很好,以是很有大概在客户真个Javascript不会准确的校验用户输出的各类数据,而ASP程序是运转在服务器真个,只是和你的服务器的情况有关,不管客户端是甚么扫瞄器,关于你的ASP程序来讲都是没有分离的,以是选择利用后真个ASP程序来举行数据正当性的校验是一个好的选择。
  在利用ASP来举行后真个数据正当性校验的时分,有些工资满意分歧情况上面的数据校验,编写了良多的函数来完成,好比,我们想要校验用户输出的URL地点是不是正当,是能够本人编写一段代码来逐一逐一字符的剖析用户输出的信息,要剖析的信息量小了,那还对照好办,如果剖析的前提一成不变,那可就惨了,不仅要编写很长很烦琐的代码,并且运转的效力极为低下,有无好的办理举措呢?有,那就是VBScritp5.0供应的“正则表达式”工具,只需你的服务器安装了IE5.x,就会带VBScript5.0。实在,“正则表达式”底本是Unix上面的专利,特别是在Perl言语中利用的最为普遍,恰是因为“正则表达式”的壮大功效,才使得微软渐渐将正则表达式工具移植到了视窗体系下面,使用“正则表达式”工具,我们就能够十分便利的对各类数据举行正当性的校验了。
  起首,让我们来懂得一下事实甚么是VBScript的“正则表达式”工具,我们先来看一段程序:
FunctionCheckExp(patrn,strng)
DimregEx,Match  创建变量。
SetregEx=NewRegExp创建正则表达式。
regEx.Pattern=patrn设置形式。
regEx.IgnoreCase=true设置是不是辨别字符巨细写。
regEx.Global=True设置全局可用性。
Matches=regEx.test(strng)    实行搜刮。
CheckExp=matches
EndFunction
  在这段程序程序中,我们看到可使用“NewRegExp”来失掉一个正则表达式工具,然后对这个工具举行正则婚配模板的赋值,也就是告知正则表达式工具,你想要婚配一个甚么模样的模板,然后利用办法Test来检测待处置的数据事实和我们给出的模版是不是相婚配,假如不婚配,那就标明待处置的数据不是正当的数据,从而也就完成了数据正当性的校验,我们能够看出,利用一个计划公道的婚配模板,我们能够轻松的校验一批格局相似的数据信息。
  固然,VBScript5.0中的“正则表达式”工具另有良多的其他的办法和属性,好比办法Replace(),使用他我们就能够很快的完成如今网上很时兴的UBB作风的论坛和BBS,这不在我们会商局限以内,今后再加以叙述,我们如今就看看在数据校验方面正则表达式工具经常使用的办法和属性:
经常使用办法:
Execute办法
形貌:对指定的字符串实行正则表达式搜刮。
语法:object.Execute(string)  Execute办法的语法包含以下几个部分:
object:必须的。老是一个RegExp工具的称号。
string:必须的。要在其上实行正则表达式的文本字符串。
申明:正则表达式搜刮的计划形式是经由过程RegExp工具的Pattern来设置的。Execute办法前往一个
Matches汇合,个中包括了在string中找到的每个婚配的Match工具。假如未找到婚配,Execute将前往空的Matches汇合。
Test办法
形貌:对指定的字符串实行一个正则表达式搜刮,并前往一个Boolean值唆使是不是找到婚配的形式。
语法:object.Test(string)
Test办法的语法包含以下几个部分:
object:必须的。老是一个RegExp工具的称号。
string:必须的。要实行正则表达式搜刮的文本字符串。
申明:正则表达式搜刮的实践形式是经由过程RegExp工具的Pattern属性来设置的。RegExp.Global属性对Test办法没有影响。假如找到了婚配的形式,Test办法前往True;不然前往False。
经常使用属性:
Global属性
形貌:设置或前往一个Boolean值,该值指明在全部搜刮字符串时形式是全体婚配仍是只婚配第一个。
语法:object.Global[=True|False]
object参数老是RegExp工具。假如搜刮使用于全部字符串,Global属性的值为True,不然其值为False。默许的设置为True。
IgnoreCase属性
形貌:设置或前往一个Boolean值,指明形式搜刮是不是辨别巨细写。
语法:object.IgnoreCase[=True|False]
object参数老是一个RegExp工具。假如搜刮是辨别巨细写的,则IgnoreCase属性为False;不然为True。缺省值为True。
Pattern属性
形貌:设置或前往被搜刮的正则表达式形式。这是一个最主要的属性,我们次要是设置这个属性来完成数据校验的。
语法:object.Pattern[="searchstring"]
Pattern属性的语法包括以下几个部分:
object:必须的。老是一个RegExp工具变量。
searchstring:可选的。被搜刮的正则字符串表达式。它大概包括设置部分表格中的各类正则表达式字符。
设置:在誊写正则表达式的形式时利用了特别的字符和序列。下表形貌了可使用的字符和序列,并给出了实例。
字符形貌::将下一个字符标志为特别字符或字面值。比方"n"与字符"n"婚配。"
"与换行符婚配。序列""与""婚配,"("与"("婚配。
^:婚配输出的入手下手地位。
$:婚配输出的开头。
*:婚配前一个字符零次或几回。比方,"zo*"能够婚配"z"、"zoo"。
+:婚配前一个字符一次或屡次。比方,"zo+"能够婚配"zoo",但不婚配"z"。
?:婚配前一个字符零次或一次。比方,"a?ve?"能够婚配"never"中的"ve"。
.:婚配换行符之外的任何字符。
(pattern)与形式婚配并记着婚配。婚配的子字符串能够从作为了局的Matches汇合中利用Item[0]...[n]获得。假如要婚配括号字符(和),可以使用"("或")"。
x|y:婚配x或y。比方"z|food"可婚配"z"或"food"。"(z|f)ood"婚配"zoo"或"food"。
{n}:n为非负的整数。婚配刚好n次。比方,"o{2}"不克不及与"Bob中的"o"婚配,可是能够与"foooood"中的前两个o婚配。
{n,}:n为非负的整数。婚配最少n次。比方,"o{2,}"不婚配"Bob"中的"o",可是婚配"foooood"中一切的o。"o{1,}"等价于"o+"。"o{0,}"等价于"o*"。
{n,m}:m和n为非负的整数。婚配最少n次,最多m次。比方,"o{1,3}"婚配"fooooood"中前三个o。"o{0,1}"等价于"o?"。
[xyz]:一个字符集。与括号中字符的个中之一婚配。比方,"[abc]"婚配"plain"中的"a"。
[^xyz]:一个否认的字符集。婚配不在此括号中的任何字符。比方,"[^abc]"能够婚配"plain"中的"p".
[a-z]:暗示某个局限内的字符。与指定区间内的任何字符婚配。比方,"[a-z]"婚配"a"与"z"之间的任何一个小写字母字符。
[^m-z]:否认的字符区间。与不在指定区间内的字符婚配。比方,"[m-z]"与不在"m"到"z"之间的任何字符婚配。
:与单词的界限婚配,即单词与空格之间的地位。比方,"er"与"never"中的"er"婚配,可是不婚配"verb"中的"er"。
B:与非单词界限婚配。"ea*rB"与"neverearly"中的"ear"婚配。
d:与一个数字字符婚配。等价于[0-9]。
D:与非数字的字符婚配。等价于[^0-9]。
f:与分页符婚配。

:与换行符字符婚配。
:与回车字符婚配。
s:与任何白字符婚配,包含空格、制表符、分页符等。等价于"[f
        v]"。
S:与任何非空缺的字符婚配。等价于"[^f
        v]"。
        :与制表符婚配。
v:与垂直制表符婚配。
w:与任何单词字符婚配,包含下划线。等价于"[A-Za-z0-9_]"。
W:与任何非单词字符婚配。等价于"[^A-Za-z0-9_]"。

um:婚配num个,个中num为一个正整数。援用回到记着的婚配。比方,"(.)1"婚配两个一连的不异的字符。

:婚配n,个中n是一个八进制换码值。八进制换码值必需是1,2或3个数字长。
比方,"11"和"11"都与一个制表符婚配。"011"等价于"01"与"1"。八进制换码值不得凌驾256。不然,只要前两个字符被视为表达式的一部分。同意在正则表达式中利用ASCII码。
xn:婚配n,个中n是一个十六进制的换码值。十六进制换码值必需刚好为两个数字长。比方,"x41"婚配"A"。"x041"等价于"x04"和"1"。同意在正则表达式中利用ASCII码。
  好了,经常使用的办法和属性就是这些了,下面的语法先容的已很具体了,我们就没有需要在罗嗦了,接上去我们来看看在详细的例子内里怎样利用这些办法和属性来校验数据的正当性,我们仍是举个例子吧,好比,我们想要对用户输出的电子邮件举行校验,那末,甚么样的数据才算是一个正当的电子邮件呢?我能够如许输出:abc@263.net,固然我也会如许输出:xxx@yyy.com.cn,可是如许的输出就长短法的:xxx@@com.cn大概@xxx.com.cn,等等,以是我们得出一个正当的电子邮件地点最少应该满意以下几个前提:
1.必需包括一个而且只要一个标记“@”
2.必需包括最少一个最多三个标记“.”
3.第一个字符不得是“@”大概“.”
4.不同意呈现“@.”大概.@
5.开头不得是字符“@”大概“.”
以是依据以上的准绳和下面表中的语法,我们很简单的就能够失掉必要的模板以下:"(w)+[@]{1}(w)+[.]{1,3}(w)+"
  接上去我们细心剖析一下这个模板,起首“w”暗示邮件的入手下手字符只能是包括下划线的单词字符,如许,满意了第三个前提;“[@]{1}”暗示在电子邮件中应该婚配而且只能婚配一次字符“@”,满意了前提一;一样的“[.]{1,3}”暗示在电子邮件中最少婚配1个最多婚配3个字符“.”,满意了第二个前提;模板最初的“(w)+”暗示开头的字符只能是包括下划线在内的单词字符,满意了前提五;模板两头的“(w)+”满意了前提四。
  然后,我们就间接挪用方才的谁人函数CheckExp("(w)+[@]{1}(w)+[.]{1}(w)+",待校验的字符串)就行了,假如前往True就暗示数据是正当的,不然就是不准确的,怎样,复杂吧。我们还能够写出来校验身份证号码的模板:"([0-9]){15}";校验URL的模板:"^http://{1}((w)+[.]){1,3}"等等;我们能够看到,这些模板为我们供应了很好的可厚利用的模块,使用本人大概他人供应的各类模板,我们就能够便利快速的举行数据的正当性校验了,信任你必定会写出十分通用的模板的。
  如许,我们只需定制分歧的模板,就能够完成对分歧数据的正当性校验了。以是,正则表达式工具中最主要的属性就是:“Pattern”属性,只需真正把握了这个属性,才能够自在的使用正则表达式工具来为我们的数据校验举行服务。
强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-19 09:12:14 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
再现理想 该用户已被删除
板凳
发表于 2015-1-24 12:24:41 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
admin 该用户已被删除
地板
发表于 2015-2-1 10:54:06 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
爱飞 该用户已被删除
5#
发表于 2015-2-7 04:14:31 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
老尸 该用户已被删除
6#
发表于 2015-2-20 13:17:14 | 只看该作者
掌握asp的特性而且一定要知道为什么。
飘灵儿 该用户已被删除
7#
发表于 2015-3-13 05:07:19 | 只看该作者
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
变相怪杰 该用户已被删除
8#
发表于 2015-3-20 13:27:32 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2025-1-9 02:29

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表