WIXOO

Digest

asp采集内容使用instr与正则表达式去除字符中的所有链接

作者:肖钊勇 发布时间 09/09/01 来源 肖钊勇博客

一、使用正则表达式去掉内容中的所有链接,以下是函数源代码: 
'  '==============================================
'** 函数: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代码了。