复制代码 代码如下:
'==============================
'功能描述:用正则除去HTML标记
'不能保留<b><strong>等以及用户自定义的<和>
'==============================
FunctionRemoveHTMLTag(fString)
Dimre
Setre=NewRegExp
re.IgnoreCase=True
re.Pattern="<(.[^>]*)>"
fString=re.Replace(fString,"")
Setre=Nothing
RemoveHTMLTag=fString
EndFunction
'==============================
'功能描述:除去HTML标记
'不能保留<b><strong>等以及用户自定义的<和>
'==============================
FunctionRemove_HTML(Str)
Dimilen1,ilen2
DoWhileInStr(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
EndFunction
'==============================
'功能描述:除去HTML标记
'去除自定义的标记,速度可能有点慢
'==============================
FunctionRemoveHTML(strText)
DimTAGLIST
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;"
ConstBLOCKTAGLIST=";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;"
DimnPos1
DimnPos2
DimnPos3
DimstrResult
DimstrTagName
DimbRemove
DimbSearchForBlock
nPos1=InStr(strText,"<")
DoWhilenPos1>0
nPos2=InStr(nPos1+1,strText,">")
IfnPos2>0Then
strTagName=Mid(strText,nPos1+1,nPos2-nPos1-1)
strTagName=Replace(Replace(strTagName,vbCr,""),vbLf,"")
nPos3=InStr(strTagName,"")
IfnPos3>0Then
strTagName=Left(strTagName,nPos3-1)
EndIf
IfLeft(strTagName,1)="/"Then
strTagName=Mid(strTagName,2)
bSearchForBlock=False
Else
bSearchForBlock=True
EndIf
IfInStr(1,TAGLIST,";"&strTagName&";",vbTextCompare)>0Then
bRemove=True
IfbSearchForBlockThen
IfInStr(1,BLOCKTAGLIST,";"&strTagName&";",vbTextCompare)>0Then
nPos2=Len(strText)
nPos3=InStr(nPos1+1,strText,"</"&strTagName,vbTextCompare)
IfnPos3>0Then
nPos3=InStr(nPos3+1,strText,">")
EndIf
IfnPos3>0Then
nPos2=nPos3
EndIf
EndIf
EndIf
Else
bRemove=False
EndIf
IfbRemoveThen
strResult=strResult&Left(strText,nPos1-1)
strText=Mid(strText,nPos2+1)
Else
strResult=strResult&Left(strText,nPos1)
strText=Mid(strText,nPos1+1)
EndIf
Else
strResult=strResult&strText
strText=""
EndIf
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
EndFunction