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
相关推荐
stulen 2020-08-15
fengzhiwu 2020-08-01
liusarazhang 2020-06-28
xiaobaif 2020-06-14
lemonzhangyan 2020-06-13
Crazyshark 2020-06-13
weikaixxxxxx 2020-06-13
有梦就能实现 2020-06-10
shengnanonly 2020-06-03
oraclemch 2020-05-30
poplpsure 2020-05-27
fujuan000 2020-04-30
zuihaobushi 2020-04-30
luckymaoyy 2020-04-29
xiaoseyihe 2020-04-28
JackLang 2020-04-25
菇星獨行 2020-04-20
jyj00 2020-03-26