WIXOO

Digest

asp用正则过滤html标签

作者:天空诚 发布时间 09/08/13 来源 中国Asp之家

有时候我们需要程序截图文章中的部分字符作为摘要显示出来,这时我们一般是只希望提取的字符串是纯文本的,没有如何html标签,如果我们章节用left函数截取的化,得到的内容就包含了html代码,为了解决这个问题,我们可以有两个方法。

一是,在数据库中特别设置一个字段用于保存摘要。优点是你可以自己总结文章摘要,这样可读性更强,不至于让人看不懂。对seo也是有好处的,缺点就是麻烦了一点,要多花心思和时间。

二是,用程序提前文章中的特定内容作为摘要,一般是前面多少个字符。此时我们就可以使用正则表达式来轻松的实现这个提取前N个纯字符的功能。

我们知道html标签有一个特定都是用<>包含的,所以正则表达式只要匹配<>就可以了:

下面的两个函数都可以实现过滤html标签的作用:

Function RemoveHTML(str)
    Dim re
    Set re=New RegExp
    re.Pattern="<.*?>"
    re.IgnoreCase=True    
    re.Global=True
    str=re.Replace(str,"")
    Set re=Nothing 
    RemoveHTML=str
End Function

 

Function RemoveHTML(strHTML) 
Dim objRegExp, Match, Matches 
Set objRegExp = New Regexp 
objRegExp.IgnoreCase = True 
objRegExp.Global = True 
objRegExp.Pattern = "<.+?>" 
Set Matches = objRegExp.Execute(strHTML) 
For Each Match in Matches 
strHtml=Replace(strHTML,Match.Value,"") 
Next 
RemoveHTML=strHTML 
Set objRegExp = Nothing 
End Function

对于效率来讲应该第一个更好。

代码如下:


<%
Dim contenstr
contenstr="<a href='http://www.aspxhome.com' title="中国asp之家">中国asp之家<b>欢迎您</b>!欢迎出来看看,呵呵! "
'当然这里的contenstr在实际使用时换成你的文章内容
'调用过滤函数移除html标签
 contenstr=RemoveHTML(contenstr)
contenstr=left(contenstr,100) '截取前100个字符
response.write("移除html标签后:" & contenstr)
%>