变相怪杰 发表于 2015-1-16 22:11:18

ASP网站制作之asp使用正表达式剖析html的类代码

由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。VBScript5中增添了很多新功效,最奋发民气确当属类和正则表达式的呈现。以下是自己写的一个剖析html代码的类。我是学php的,语法有不习气的中央,请人人多包括。
<%
ClassHTMLParse
’设置Initialize事务。
PrivateSubClass_Initialize
myGlobal=True
myIgnoreCase=True
EndSub
PropertyLetGlobal(g)
DimregEx’创建变量。
SetregEx=NewRegExp’创建正则表达式。
regEx.Pattern="True|False|1|0"’设置形式。
regEx.IgnoreCase=True’设置是不是辨别巨细写。
IfregEx.Test(CStr(g))Then
myGlobal=g
Else
CallHalt("有效Global参数设置")
EndIf
EndProperty
PropertyGetGlobal()
Global=myGlobal
EndProperty
PropertyLetIgnoreCase(c)
DimregEx
SetregEx=NewRegExp
regEx.Pattern="True|False|1|0"
regEx.IgnoreCase=True
IfregEx.Test(CStr(c))Then
myIgnoreCase=c
Else
CallHalt("有效IgnoreCase参数设置")
EndIf
EndProperty
PropertyGetIgnoreCase()
IgnoreCase=myIgnoreCase
EndProperty
’剖析一切HTML标志的函数
PublicFunctionParse(input)
Parse="<tableborder=1width=50%align=center>"&vbCrLf
DimregEx,regVal,match,i

SetregEx=NewRegExp
regEx.Pattern="<(w*)(?:.*?)>(.*)</1>"
regEx.Global=myGlobal
regEx.IgnoreCase=myIgnoreCase

SetregVal=regEx.Execute(Trim(input))
IfregVal.Count>0Then’假如发明婚配元素
Parse=Parse&"<caption>发明"&regVal.Count&"个HTML标志</caption>"&vbCrLf
Parse=Parse&"<tralign=center><th>编号</th><th>婚配标志<th>婚配显现</th></tr>"&vbCrLf
Fori=0ToregVal.Count-1
Setmatch=regVal(i)
Parse=Parse&"<tralign=center>"&vbCrLf
Parse=Parse&"<td>"&i+1&"</td><td>"&match.SubMatches(0)&"</td><td>"&match
&"</td>"&vbCrLf
Parse=Parse&"</tr>"&vbCrLf
Next
ElseParse=Parse&"<caption>没有发明HTML标志</caption>"&vbCrLf
EndIf
Parse=Parse&"</table>"&vbCrLf
EndFunction
’剖析指定HTML标志的函数
PublicFunctionParseTag(input,tag)
ParseTag="<tableborder=1width=50%align=center>"&vbCrLf
DimregEx,regVal,match,i

SetregEx=NewRegExp
regEx.Pattern="<("&tag&")(?:.*?)>(.*?)</1>"
regEx.Global=myGlobal
regEx.IgnoreCase=myIgnoreCase

SetregVal=regEx.Execute(Trim(input))
IfregVal.Count>0Then’假如发明婚配元素
ParseTag=ParseTag&"<caption>发明"&regVal.Count&"个"&UCase(tag)&"标志</caption>"&
vbCrLf
ParseTag=ParseTag&"<tralign=center><th>编号</th><th>发明地位<th>包括内容</th></tr>"&
vbCrLf
Fori=0ToregVal.Count-1
Setmatch=regVal(i)
ParseTag=ParseTag&"<tralign=center>"&vbCrLf
ParseTag=ParseTag&"<td>"&i+1&"</td><td>"&match.FirstIndex&"</td><td>"&
match.SubMatches(1)&"</td>"&vbCrLf
ParseTag=ParseTag&"</tr>"&vbCrLf
Next
ElseParseTag=ParseTag&"<caption>没有发明"&UCase(tag)&"标志</caption>"&vbCrLf
EndIf
ParseTag=ParseTag&"</table>"&vbCrLf
EndFunction
’打印毛病
PrivateSubHalt(errstr)
Response.Write("<fontcolor=redsize=3>"&errstr&"</font>"&vbCrLf)
CallClass_Terminate
EndSub

PrivateSubClass_Terminate’设置Terminate事务。
EndSub

’界说两个外部变量
PrivatemyGlobal
PrivatemyIgnoreCase
EndClass
%>
<html>
<body>
<divalign=center><h2>典范1</h2></div>
<%
’典范1
Diminput,result
input="<i>这是</i>一个<fontcolor=green>VBScript</font>的<b>正则<i>表达式</i>典范</b>。"
Sethp=NewHTMLParse
hp.Global=1
hp.IgnoreCase=False
result=hp.Parse(input)
Response.Write(result)
%>
<br>
<divalign=center><h2>典范2</h2></div>
<%
’典范2
’hp.Global=1
’hp.IgnoreCase=False
result2=hp.ParseTag(input,"i")
Response.Write(result2)
Sethp=Nothing
%>
</body>
</html>
  人人应当注重到了,VBScript的正则表达式和Jscript的剖析是一样的,只是语法分歧。关于最新的VBScript的文档,人人能够到微软中国的剧本手艺主页往下载,网址:http://www.microsoft.com/china/scripting
asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关.

admin 发表于 2015-1-18 22:12:11

Server:这个表示的服务器,操作服务器的一些东西使用这个,如Server.Mappath转换服务器路径,Server.CreateObject实例化一个组件

仓酷云 发表于 2015-2-2 22:11:51

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

莫相离 发表于 2015-2-8 12:24:07

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

简单生活 发表于 2015-2-25 12:57:30

接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。

再现理想 发表于 2015-3-7 21:40:05

以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。

分手快乐 发表于 2015-3-15 15:11:03

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

蒙在股里 发表于 2015-3-22 02:18:58

掌握asp的特性而且一定要知道为什么。
页: [1]
查看完整版本: ASP网站制作之asp使用正表达式剖析html的类代码