有时候我们需要程序截图文章中的部分字符作为摘要显示出来,这时我们一般是只希望提取的字符串是纯文本的,没有如何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) %>
|