仓酷云
标题:
ASP网页编程之在ASP顶用“正则表达式工具”来校验数据...
[打印本页]
作者:
分手快乐
时间:
2015-1-16 22:53
标题:
ASP网页编程之在ASP顶用“正则表达式工具”来校验数据...
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;工具|数据|正则在ASP顶用“正则表达式工具”来校验数据的正当性
(苏红超 2000年03月27日13:35)
我们在制造网站的时分,特别是各类电子商务网站,起首城市让用户填写一些表格来猎取注册用户的各类信息,由于用户有大概输出形形色色的信息,而有些不切合请求的数据会给我们的后端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]:一个否认的字符集。婚配不在此括号中的任何字符。比方,&qu</p>缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。
作者:
第二个灵魂
时间:
2015-1-20 05:48
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
作者:
愤怒的大鸟
时间:
2015-1-25 21:46
作为IE上广为流传的动态网页开发技术,ASP以它简单易学博得了广大WEB程序爱好这的青睐,而且它对运行环境和开发品台的不挑剔,以及有大量有效的参考手册,极大的推广了它的发展。
作者:
若天明
时间:
2015-2-4 03:19
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
作者:
只想知道
时间:
2015-2-9 13:50
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者:
再见西城
时间:
2015-2-27 06:38
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
作者:
乐观
时间:
2015-3-8 23:19
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者:
再现理想
时间:
2015-3-16 18:18
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
作者:
admin
时间:
2015-3-22 23:41
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2