仓酷云

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

[学习教程] ASP网站制作之HTML中提取图片的SRC路径

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

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

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

x
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全ASP中RegExp是甚么
名字字符查验
以下为援用的内容:
PublicFunctionCheckName(Str)
Checkname=True
DimRep,pass
SetRep=NewRegExp创建正则表达式。
Rep.Global=True设置全局可用性。
Rep.IgnoreCase=True设置是不是辨别字符巨细写
设置形式。
Rep.Pattern="[u0009u0020u0022-u0028u002C-u002Eu003A-u003Fu005Bu005Cu0060u007Cu007Eu00FFuE5E5]"
Setpass=Rep.Execute(Str)对指定的字符串实行正则表达式搜刮。
Ifpass.count0ThenCheckName=False
response.Write(Checkname)
response.End()
SetRep=Nothing
EndFunction
我们在制造网站的时分,特别是各类电子商务网站,起首城市让用户填写一些表格来猎取注册用户的各类信息,由于用户有大概输出形形色色的信息,而有些不切合请求的数据会给我们的后端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"婚配。"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"之间的任何字符婚配。
b:与单词的界限婚配,即单词与空格之间的地位。比方,"erb"与"never"中的"er"婚配,可是不婚配"verb"中的"er"。
B:与非单词界限婚配。"ea*rB"与"neverearly"中的"ear"婚配。
d:与一个数字字符婚配。等价于[0-9]。
D:与非数字的字符婚配。等价于[^0-9]。
f:与分页符婚配。
n:与换行符字符婚配。
r:与回车字符婚配。
s:与任何白字符婚配,包含空格、制表符、分页符等。等价于"[fnrtv]"。
S:与任何非空缺的字符婚配。等价于"[^fnrtv]"。
t:与制表符婚配。
v:与垂直制表符婚配。
w:与任何单词字符婚配,包含下划线。等价于"[A-Za-z0-9_]"。
W:与任何非单词字符婚配。等价于"[^A-Za-z0-9_]"。
num:婚配num个,个中num为一个正整数。援用回到记着的婚配。比方,"(.)1"婚配两个一连的不异的字符。
n:婚配n,个中n是一个八进制换码值。八进制换码值必需是1,2或3个数字长。
比方,"11"和"11"都与一个制表符婚配。"011"等价于"01"与"1"。八进制换码值不得凌驾256。不然,只要前两个字符被视为表达式的一部分。同意在正则表达式中利用ASCII码。
xn:婚配n,个中n是一个十六进制的换码值。十六进制换码值必需刚好为两个数字长。比方,"x41"婚配"A"。"x041"等价于"x04"和"1"。同意在正则表达式中利用ASCII码。
好了,经常使用的办法和属性就是这些了,下面的语法先容的已很具体了,我们就没有需要在罗嗦了,接上去我们来看看在详细的例子内里怎样利用这些办法和属性来校验数据的正当性,我们仍是举个例子吧,好比,我们想要对用户输出的电子邮件举行校验,那末,甚么样的数据才算是一个正当的电子邮件呢?我能够如许输出:uestc95@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”属性,只需真正把握了这个属性,才能够自在的使用正则表达式工具来为我们的数据校验举行服务。

一样的用正则
以下为援用的内容:stringstr="<imgsrc=/upimg/allimg/081024/0851352.jpg>"
Regexreg=newRegex("<imgs+src=([|"]?)(S+.w+)(1)");
MatchCollectionmc=reg.Matches(input);
foreach(Matchminmc)
{
TB_Result.AppendText(String.Format("{0}ismatchrn",m.Groups[0]));
for(inti=0;i<m.Groups.Count;i++)
{
//图片地点应当是m.Groups[2].Value
Response.Write(String.Format("Group[{0}]={1}rn",i,m.Groups[i].Value));
}
}

//有几个婚配项
Response.Write(mc.Count.ToString());
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。
爱飞 该用户已被删除
沙发
发表于 2015-1-21 05:18:36 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-30 08:23:05 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
若相依 该用户已被删除
地板
发表于 2015-2-6 09:18:08 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
因胸联盟 该用户已被删除
5#
发表于 2015-2-15 21:40:19 | 只看该作者
那么,ASP.Net有哪些改进呢?
老尸 该用户已被删除
6#
发表于 2015-3-4 14:22:05 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
7#
发表于 2015-3-11 20:02:33 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
再见西城 该用户已被删除
8#
发表于 2015-3-19 11:02:30 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-10 04:03

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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