北京三原色创意科技有限公司
  • 平面设计

  • 名片设计印刷

    标志

    企业画册

    折页

    海报

网站首页 >> 三原色日志 >>

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

« 国内主流IDC厂商服务平台登录地址SqlServer转换Access的自动编号字段问题 »

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

去除HTML标签,从网上找了三段代码。百度一下,很多啊。

代码一:

'==============================
'功能描述: 除去HTML标记
'不能保留<b><strong>,并且可以去除Font
'==============================
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标记
'不能保留<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

三原色试用:此脚本无法去除<font>标签,至少是这样。

代码三:

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

三原色试用:没有试用,看到有点慢就没有试,不过,应该是过滤得比较全一些。

原文转自:http://www.jb51.net/article/8654.htm

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

热门标签TagCloud

最新评论及回复

最近发表

Search

图标汇集

  • 订阅到抓虾
  • 订阅到鲜果
  • 订阅到飞鸽
  • 订阅到Google
  • 订阅到Yahoo雅虎
  • 订阅到Bloglines
  • 订阅到Gougou
  • 订阅到ROJO
  • 订阅到newsgator
  • 订阅到netvibes
  • RainbowSoft Studio Z-Blog
  • 本站支持WAP访问
  • 订阅本站的 ATOM 1.0 新闻聚合
  • 订阅本站的 RSS 2.0 新闻聚合

Powered By Z-Blog 1.8 Spirit Build 80710 Code detection by Codefense

Copyright 三原色创意 SYSCY.COM. Some Rights Reserved.