asp中去除内容HTML标签的三个function函数

所属分类: 网络编程 / ASP编程 阅读数: 1937
收藏 0 赞 0 分享
复制代码 代码如下:

'==============================
'功能描述: 用正则除去HTML标记
'不能保留<b><strong>等以及用户自定义的<和>
'==============================

Function RemoveHTMLTag(fString)
        Dim re
        Set re = New RegExp
        re.IgnoreCase = True
        re.Pattern = "<(.[^>]*)>"
        fString = re.Replace(fString, "")
        Set re = Nothing
        RemoveHTMLTag = fString
End Function

'==============================
'功能描述: 除去HTML标记
'不能保留<b><strong>等以及用户自定义的<和>
'==============================

Function Remove_HTML(Str)
        Dim ilen1, ilen2
        Do While InStr(1, Str, "<", 1) >0
                ilen1 = InStr(1, Str, "<", 1)
                ilen2 = InStr(1, Str, ">", 1)
                Str = Left(Str, ilen1 -1) & Mid(Str, ilen2 + 1)
        Loop
        Remove_HTML = Str
End Function

'==============================
'功能描述: 除去HTML标记
'去除自定义的标记,速度可能有点慢
'==============================

Function RemoveHTML(strText)
        Dim TAGLIST
        TAGLIST = ";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;" &_
        "BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;" &_
        "COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;" &_
        "FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG;" &_
        "INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;" &_
        "MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT;" &_
        "PRE;Q;S;SAMP;SCRIPT;Select;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;" &_
        "TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;"

        Const BLOCKTAGLIST = ";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"

        Dim nPos1
        Dim nPos2
        Dim nPos3
        Dim strResult
        Dim strTagName
        Dim bRemove
        Dim bSearchForBlock

        nPos1 = InStr(strText, "<")
        Do While nPos1 > 0
                nPos2 = InStr(nPos1 + 1, strText, ">")
                If nPos2 > 0 Then
                        strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
                        strTagName = Replace(Replace(strTagName, vbCr, " "), vbLf, " ")

                        nPos3 = InStr(strTagName, " ")
                        If nPos3 > 0 Then
                                strTagName = Left(strTagName, nPos3 - 1)
                        End If


                        If Left(strTagName, 1) = "/" Then
                                strTagName = Mid(strTagName, 2)
                                bSearchForBlock = False
                        Else
                                bSearchForBlock = True
                        End If

                        If InStr(1, TAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
                                bRemove = True
                                If bSearchForBlock Then
                                        If InStr(1, BLOCKTAGLIST, ";" & strTagName & ";", vbTextCompare) > 0 Then
                                                nPos2 = Len(strText)
                                                nPos3 = InStr(nPos1 + 1, strText, "</" & strTagName, vbTextCompare)
                                                If nPos3 > 0 Then
                                                        nPos3 = InStr(nPos3 + 1, strText, ">")
                                                End If

                                                If nPos3 > 0 Then
                                                        nPos2 = nPos3
                                                End If
                                        End If
                                End If
                        Else
                                bRemove = False
                        End If

                        If bRemove Then
                                strResult = strResult & Left(strText, nPos1 - 1)
                                strText = Mid(strText, nPos2 + 1)
                        Else
                                strResult = strResult & Left(strText, nPos1)
                                strText = Mid(strText, nPos1 + 1)
                        End If
                Else
                        strResult = strResult & strText
                        strText = ""
                End If

                nPos1 = InStr(strText, "<")
        Loop
        strResult = strResult & strText
        strResult = Replace(strResult, Chr(9), "")
        strResult = Replace(strResult, Chr(32), "")
        strResult = Replace(strResult, Chr(13), "")
        strResult = Replace(strResult, Chr(10), "")
        strResult = Replace(strResult, vbCrLf, "")
        RemoveHTML = strResult
End Function
更多精彩内容其他人还在看

asp知识整理笔记4(问答模式)

这是关于asp知识整理的最后一份笔记,希望大家仔细阅读。
收藏 0 赞 0 分享

ASP基础知识VBScript基本元素讲解

这篇文章主要介绍了ASP基础知识VBScript基本元素的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP编码和解码函数详解

这篇文章主要介绍了ASP编码和解码函数的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP显示页面执行时间的方法

这篇文章主要介绍了ASP显示页面执行时间的方法,在本地测试一下输出页面需要多少时间,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第一篇(ASP技术简介)

本文将以 Active Server Pages 为中心,向你全面展示制作动态商业网站的步骤和技巧并通过大量的实例,让你在不断的理论和实践之中笑傲“网络”……
收藏 0 赞 0 分享

ASP基础入门第二篇(ASP基础知识)

这篇文章是ASP基础入门第二篇,第一篇展示了ASP动态网站设计的一些最基本的方法,相信通过实践各位对 ASP 已经有了最基本的了解,本文将进一步介绍ASP动态网站的一些基本技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

ASP基础入门第三篇(ASP脚本基础)

通过前两篇的学习,相信各位已经对 ASP 的动态网站设计有了一个基本的概念和整体的印象。从本篇开始作者将从脚本语言的使用着手,由浅入深地带领大家探索 ASP 动态网站设计的真正奥秘。
收藏 0 赞 0 分享

ASP基础入门第四篇(脚本变量、函数、过程和条件语句)

大家在学习了脚本语言 VBScript 的变量、常量和过程的基本概念后,本期将继续向各位介绍 VBScript 的函数和语法。
收藏 0 赞 0 分享

ASP基础入门第五篇(ASP脚本循环语句)

在本文上两篇中,我们学习了脚本语言 VBScript 的变量、函数、过程和条件语句,本篇将继续给大家介绍 VBScipt 的循环语句,并对脚本语言在 ASP 中的应用加以总结。  
收藏 0 赞 0 分享

ASP基础入门第六篇(ASP内建对象Request)

从本篇开始作者从 ASP 内建对象着手,为大家详细剖析 ASP 的六个内建对象和各种组件的特性和方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多