去除HTML代码中所有标签的两种方法

去除HTML代码中所有标签

代码如下:

<% 
'****************************** 
'函数:RemoveHTML_A(strText) 
'参数:strText,待处理的字符串 
'作者:阿里西西 
'日期:2007/7/12 
'描述:去除HTML代码中所有标签 
'示例:<%=RemoveHTML_A("<b>欢迎光临阿里西西</b>")%> 
'****************************** 
Function RemoveHTML_A(strText) 
    Dim nPos1 
    Dim nPos2 

    nPos1 = InStr(strText, "<")  
    Do While nPos1>0  
        nPos2 = InStr(nPos1+1, strText, ">")  
        If nPos2>0 Then  
            strText = Left(strText, nPos1 - 1) & Mid(strText, nPos2 + 1)  
        Else  
            Exit Do  
        End If  
        nPos1 = InStr(strText, "<")  
    Loop  

    RemoveHTML_A = strText  
End Function 
%>

去除HTML代码中所有标签之二

代码如下:

<%  
'******************************  
'函数:RemoveHTML_B(strText)  
'参数:strText,待处理的字符串  
'作者:阿里西西  
'日期:2007/7/12  
'描述:去除HTML代码中所有标签  
'示例:<%=RemoveHTML_B("<b>欢迎光临阿里西西</b>")%>  
'******************************  
Function RemoveHTML_B( strText )  
 Dim RegEx  

 Set RegEx = New RegExp  

 RegEx.Pattern = "<[^>]*>"  
 RegEx.Global = True  

 RemoveHTML_B = RegEx.Replace(strText, "")  
End Function  
%> 

去除HTML代码中所有标签之三

代码如下:

<% 
'****************************** 
'函数:RemoveHTML_C(strText) 
'参数:strText,待处理的字符串 
'作者:阿里西西 
'日期:2007/7/12 
'描述:去除HTML代码中所有标签 
'示例:<%=RemoveHTML_C("<b>欢迎光临阿里西西</b>")%> 
'****************************** 
Function RemoveHTML_C( 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 

    RemoveHTML_C = strResult 
End Function 
%>

相关推荐