您的位置:首页技术开发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 & "" & vbCrLf

            Parse = Parse & "" & vbCrLf

        For i=0 To regVal.Count-1

            Set match = regVal(i)

            Parse = Parse & "" & vbCrLf

            Parse = Parse & "" & vbCrLf

            Parse = Parse & "" & vbCrLf

        Next

        Else Parse = Parse & "" & vbCrLf

        End If

        Parse = Parse & "
发现" & regVal.Count & "个HTML标记
编号匹配标记匹配显示
" & i+1 & "" & match.SubMatches(0) & "" & match

& "
没有发现HTML标记
" & 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 & "" &

vbCrLf

            ParseTag = ParseTag & "" &

vbCrLf

        For i=0 To regVal.Count-1

            Set match = regVal(i)

            ParseTag = ParseTag & "" & vbCrLf

            ParseTag = ParseTag & "" & vbCrLf

            ParseTag = ParseTag & "" & vbCrLf

        Next

        Else ParseTag = ParseTag & "" & vbCrLf

        End If

        ParseTag = ParseTag & "
发现" & regVal.Count & "个" & UCase(tag) & "标记
编号发现位置包含内容
" & i+1 & "" & match.FirstIndex & "" &

match.SubMatches(1) & "
没有发现" & UCase(tag) & "标记
" & 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隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案