日期:2014-05-17  浏览次数:21014 次

怎么写去掉html代码函数,但要保留一些特殊的字符
比如下面这个函数是过滤Html代码:
Function   delHtml(strHtml)   '做了一个函数名叫delhtml

Dim   objRegExp,   strOutput
Set   objRegExp   =   New   Regexp   '   建立正则表达式

objRegExp.IgnoreCase   =   True   '   设置是否区分大小写
objRegExp.Global   =   True   '是匹配所有字符串还是只是第一个
objRegExp.Pattern   =   "( <[a-zA-Z].*?> )|( <[\/][a-zA-Z].*?> ) "   '   设置模式引号中的是正则表达式,用来找出html标签

strOutput   =   objRegExp.Replace(strHtml,   " ")   '将html标签去掉
strOutput   =   Replace(strOutput,   " < ",   " < ")   '防止非html标签不显示
strOutput   =   Replace(strOutput,   "> ",   "> ")  
delHtml   =   strOutput

Set   objRegExp   =   Nothing
End   Function

但这样的话就把所以的 <和> 之间的内容过滤掉了,我现在的问题是要保留像 <p> 、 </p> 、 <b> 、 </b> 、 <img> 和 </img> 之间的图片等这些东西该怎么处理?


------解决方案--------------------
try:

objRegExp.Pattern = "( <[ac-hj-oq-rt-z][^> ]*> )|( <[\/][ac-hj-oq-rt-z][^> ]*> ) "

objRegExp.IgnoreCase = True