-
您的位置:首页 → 技术开发 → ASP技巧 → 在ASP中使用类
在ASP中使用类
时间:2004/11/7 4:09:00来源:本站整理作者:蓝点我要评论(0)
-
VBScript5中增加了许多新功能,最振奋人心的当属类和正则表达式的出现。以下是本人写的一个解析html代码的类。我是
学php的,语法有不习惯的地方,请大家多包含。
<%
Class HTMLParse
' 设置 Initialize 事件。
Private Sub Class_Initialize
myGlobal = True
myIgnoreCase = True
End Sub
Property Let Global(g)
Dim regEx ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = "True|False|1|0" ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
If regEx.Test(CStr(g)) Then
myGlobal = g
Else
Call Halt("无效Global参数配置")
End If
End Property
Property Get Global()
Global = myGlobal
End Property
Property Let IgnoreCase(c)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = "True|False|1|0"
regEx.IgnoreCase = True
If regEx.Test(CStr(c)) Then
myIgnoreCase = c
Else
Call Halt("无效IgnoreCase参数配置")
End If
End Property
Property Get IgnoreCase()
IgnoreCase = myIgnoreCase
End Property
'解析所有HTML标记的函数
Public Function Parse(input)
Parse = "" & vbCrLf
Dim regEx , regVal , match , i
Set regEx = New RegExp
regEx.Pattern = "<([a-z]\w*)(?:.*?)>(.*)<\/\1>"
regEx.Global = myGlobal
regEx.IgnoreCase = myIgnoreCase
Set regVal = regEx.Execute(Trim(input))
If regVal.Count > 0 Then '如果发现匹配元素
Parse = Parse & "发现" & regVal.Count & "个HTML标记" & vbCrLf
Parse = Parse & "编号 | 匹配标记 | 匹配显示 |
" & vbCrLf
For i=0 To regVal.Count-1
Set match = regVal(i)
Parse = Parse & "" & vbCrLf
Parse = Parse & "" & i+1 & " | " & match.SubMatches(0) & " | " & match
& " | " & vbCrLf
Parse = Parse & "
" & vbCrLf
Next
Else Parse = Parse & "没有发现HTML标记" & vbCrLf
End If
Parse = Parse & "
" & vbCrLf
End Function
'解析指定HTML标记的函数
Public Function ParseTag(input,tag)
ParseTag = "" & vbCrLf
Dim regEx , regVal , match , i
Set regEx = New RegExp
regEx.Pattern = "<(" & tag & ")(?:.*?)>(.*?)<\/\1>"
regEx.Global = myGlobal
regEx.IgnoreCase = myIgnoreCase
Set regVal = regEx.Execute(Trim(input))
If regVal.Count > 0 Then '如果发现匹配元素
ParseTag = ParseTag & "发现" & regVal.Count & "个" & UCase(tag) & "标记" &
vbCrLf
ParseTag = ParseTag & "编号 | 发现位置 | 包含内容 |
" &
vbCrLf
For i=0 To regVal.Count-1
Set match = regVal(i)
ParseTag = ParseTag & "" & vbCrLf
ParseTag = ParseTag & "" & i+1 & " | " & match.FirstIndex & " | " &
match.SubMatches(1) & " | " & vbCrLf
ParseTag = ParseTag & "
" & vbCrLf
Next
Else ParseTag = ParseTag & "没有发现" & UCase(tag) & "标记" & vbCrLf
End If
ParseTag = ParseTag & "
" & vbCrLf
End Function
'打印错误
Private Sub Halt(errstr)
Response.Write("" & errstr & "" & vbCrLf)
Call Class_Terminate
End Sub
Private Sub Class_Terminate ' 设置 Terminate 事件。
End Sub
'定义两个内部变量
Private myGlobal
Private myIgnoreCase
End Class
%>
范例1
<%
'范例1
Dim input , result
input = "这是一个VBScript的正则表达式范例。"
Set hp = New HTMLParse
hp.Global = 1
hp.IgnoreCase = False
result = hp.Parse(input)
Response.Write(result)
%>
范例2
<%
'范例2
'hp.Global = 1
'hp.IgnoreCase = False
result2 = hp.ParseTag(input,"i")
Response.Write(result2)
Set hp = Nothing
%>
大家应该注意到了,VBScript的正则表达式和Jscript的解析是一样的,只是语法不同。关于最新的VBScript的文档,大家
可以到微软中国的脚本技术主页去下载,网址:http://www.microsoft.com/china/scripting
相关阅读
Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
-
热门文章
没有查询到任何记录。
最新文章
VB.NET 2005编写定时关
Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速
人气排行
轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案
查看所有0条评论>>