asp采集内容使用instr与正则表达式去除字符中的所有链接
一、使用正则表达式去掉内容中的所有链接,以下是函数源代码:
' '==============================================
'** 函数:RemoveHref
'** 作用:正则表达式去除字符串中所有的超级链接
'=====================================================
Function RemoveHref(HTMLstr)
Set ra = New RegExp
ra.IgnoreCase = True
ra.Global = True
ra.Pattern = "<a[^>]+>(.+?)<\/a>"
RemoveHref= ra.replace(HTMLstr,"$1")
End Function
二、使用instr去除字符中的所有链接,以下是函数源代码:
''==================================================
'** 函数:RemoveHref
'** 作用:去除字符串中所有的超级链接
'=======================================================
Function RemoveHref (HTMLstr)
Dim n,str1,str2,str3,str4
HTMLstr = Lcase(HTMLstr)
For n=1 to Ubound(Split(HTMLstr,"<a"))
str1 = Instr(HTMLstr,"<a")
str2 = Instr(str1,HTMLstr,">")
HTMLstr = left(HTMLstr,str1-1)&right(HTMLstr,len(HTMLstr)-len(left(HTMLstr,str2)))
HTMLstr = replace (HTMLstr,"</a>","")
RemoveHref = HTMLstr
Next
End Function
三、简单的过滤HTML代码
很多网站上,给用户留言或评论的地方,很易让别人加上HTML代码,作出恶意行为。所以,一定要过滤了。
写出了这个代码,通过正规表达式实现过滤所有HTML代码。因为HTML代码都含有“<”和“>”。
代码如下:
Function CleanHTML(str)
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="<(.[^>]*)>"
CleanHTML=re.Replace(str,"")
set re=Nothing
End Function
要使用的时候,一般在表单提交的地方,写成这样就行了:
guest=CleanHTML(Request.Form("guest"))
这样,guest的内容,就从表单guest中读取后并清除HTML代码了。