日期:2014-05-16  浏览次数:20761 次

ASP过滤外链,保留站内链接(有过滤所有链接代码)
本帖最后由 XingYuan171679045 于 2012-12-26 14:07:56 编辑
'函数
Function RegRemoveHref(HTMLstr) 
Set ra = New RegExp 
ra.IgnoreCase = True 
ra.Global = True 
ra.Pattern = "<a[^>]+>(.+?)<\/a>" 
RegRemoveHref = ra.replace(HTMLstr,"$1") 
END Function
'调用
RegRemoveHref(rs("带链接的内容")

这样过滤了所有链接,如果要保留站内链接或指定域名的链接,要怎么修改?
------解决方案--------------------
Function RegRemoveHref(HTMLstr)
dim ra
set ra = New RegExp
ra.IgnoreCase = True
ra.Global = True
ra.Pattern = " href=[""'](https?.*?)[""' ]"
RegRemoveHref = ra.replace(HTMLstr,"")
END Function

------解决方案--------------------
如果想完美一点,就用2个正则,一个是提取连接出来然后与你本站的地址做比较
如果含有本站网址的,就不过滤,否则就进行过滤
------解决方案--------------------
ra.Pattern = "[\s]href=([""'])(https?(?:(?!(?:aaa.com
------解决方案--------------------
bbb.com
------解决方案--------------------
ccc.com))[^\1])*?)\1"

把aaa.com
------解决方案--------------------
bbb.com
------解决方案--------------------
ccc.com换成你不想过滤的站点串就行了