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

代码如下:

'==============================
'功能描述: 用正则除去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

(0)

相关推荐

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

    复制代码 代码如下: '============================== '功能描述: 用正则除去HTML标记 '不能保留<b><strong>等以及用户自定义的<和> '============================== Function RemoveHTMLTag(fString)         Dim re         Set re = New RegExp         re.IgnoreCase = True         re

  • asp中去除html中style,javascript,css代码

    asp函数代码 复制代码 代码如下: <% Function RemoveHTML(str) Dim objRegExp, Match,strHTML if isnull(str) then str="" end if strHTML=str strHTML=replace(replace(replace(strHTML,vblf,""),vbcr,""),vbcrlf,"") Set objRegExp = New R

  • asp中获取内容中所有图片与获取内容中第一个图片的代码

    复制代码 代码如下: '===================================== '获取内容中所有图片 '===================================== Function Get_ImgSrc(ByVal t0) Dim t1,Regs,Matches,Match t1="" IF Not(IsNull(t0) Or Len(t0)=0) Then Set Regs=New RegExp Regs.Pattern="<img

  • asp中判断服务器是否安装了某种组件的函数

    判断服务器是否安装了某种asp组件,比较常用的代码如下: 复制代码 代码如下: <% '功能:检查是否存在系统组件或组件是否安装成功 '参数:组件名 Function IsObjInstalled(strClassString) On Error Resume Next IsObjInstalled = False Err = 0 Dim xTestObj Set xTestObj = Server.CreateObject(strClassString) If 0 = Err Then IsO

  • asp中向文本框输出数据原样式的函数

    从数据库输出信息时有转换函数,可以将回车空格按原样式输出.这段代码可向文本框原样输出代码. 复制代码 代码如下: Function cc_f_textarea_html_encode(cc_f_t_h_e_str)  If Not IsNull(cc_f_t_h_e_str) And cc_f_t_h_e_str <> "" Then  cc_f_t_h_e_str = Replace(cc_f_t_h_e_str, ">", ">

  • ASP中通过该日历算法实现的具体代码

    复制代码 代码如下: <style> td { font-family: "宋体"; font-size:9pt} </style> <body bgcolor="eeeeee"> <table width="180" cellpadding="0" cellspacing="1" bgcolor="dddddd" align=center>

  • ASP中只有UrlEncode,没有Urldecode问题的解决方法?

    在ASP中传递参数时有一个很有用的系统函数Server.UrlEncode,可以将一些非字母数字的特殊符号转换成标准URL编码(其实就是16进制ASC码),这样就解决了参数传递问题,然后我以为也提供了Server.UrlDecode,但使用后却发现程序报错,原来系统并没有提供这个我想象中的解码函数.怎幺办,自己动手吧. UrlEncode的原理其实很简单,就是将特殊字符转换成16进制ASC码值,那么译码函数就只要将16进制ASC转回对应的字符就OK了. Function URLDecode(en

  • Yii框架引用插件和ckeditor中body与P标签去除的方法

    本文实例讲述了Yii框架引用插件和ckeditor中body与P标签去除的方法.分享给大家供大家参考,具体如下: 在Yii中引用插件 注:插件和扩展不一样 1,源码放在project/ckeditor/* 2,在代码create,update中引用 Php代码 <?php include_once "/ckeditor/ckeditor.php"; // Create a class instance. $CKEditor = new CKEditor(); // Path to

  • ASP.NET中GridView、DataList、DataGrid三个数据控件foreach遍历用法示例

    本文实例讲述了ASP.NET中GridView.DataList.DataGrid三个数据控件foreach遍历用法.分享给大家供大家参考,具体如下: //gridview遍历如下: foreach (GridViewRow row in GridView1.Rows) { CheckBox cb = (CheckBox)row.FindControl("CheckBox2"); if (cb.Checked == true) { } } //datagrid遍历: foreach (

  • java实现利用String类的简单方法读取xml文件中某个标签中的内容

    1.利用String类提供的indexOf()和substring()快速的获得某个文件中的特定内容 public static void main(String[] args) { // 测试某个词出现的位置 String reqMessage = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + "<in>" + "<head&g

随机推荐