用正则表达式实现电话、邮件、网址过滤的函数

来源:互联网 发布:逆袭网络剧第一集土豆 编辑:程序博客网 时间:2024/04/30 11:22

最近写一个程序由于涉及到要过滤信息中的电话、邮件、网址,考虑到这些信息的不确定性,决定用正则表达来解决,这两天才真正的学起正则表达式来,将近两天的学习,这个函数基本能达希望的功能,现贴出来希望对有需要有朋友有帮助。当然,这个函数还有不足的地方,希望各位朋友给于更正,谢谢!!!

'--- 函数名:SdkStr                    ---
'--- 参数:tStr(要过滤的字符串)      ---
'--- 功能:过滤电话、邮件、网址        ---
'--- POWER BY SD  Web:www.fanzny.com   ---
'--- QQ:61192909  Mail:fanzny@21cn.com ---
'--- 建立时间:05-03-22                 ---
'--- 转载本函数时请保留此信息          ---
Function SdkStr(tStr)
 on error resume next
 if Trim(tStr)="" or IsNull(tStr)=true then
  SdkStr=""
  exit function
 end if
 
 response.write "<br><br>处理前:" & tStr
 
 dim sList,dList,i,s,RegEx
 sList="1|2|3|4|5|6|7|8|9|0|-|_|~|/|。|:|&|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z"
 dList="1|2|3|4|5|6|7|8|9|0|-|_|~|/|.|:|&|@|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z"
 s=ubound(split(sList,"|"))
 
 '过滤大写字符为小写字符
 for i=0 to s
  tStr=replace(tStr,split(sList,"|")(i),split(dList,"|")(i))
    next

 Set RegEx=New RegExp
 RegEx.Pattern="(/(/d{2,4}/)|(/d{3,4}-?))/d{7,8}|/d{7,8}|0?13/d{1}/d{8}|((/w)|[-]|[.])+@(((/w)|[-])+[.])+[a-z]{2,4}|http:////([/w-]+/.)+[/w-]+(//[/w- .//?%&=]*)?|([/w-]+/.)+[/w-]+(//[/w- .//?%&=]*)?"   '处理电话号码和电子邮件、网址
 RegEx.IgnoreCase=True
 RegEx.Global=True
 SdkStr=RegEx.Replace(tStr,"")
 Set RegEx=Nothing
End Function

response.write "<br><br>处理后:" & SdkStr("t1 www.163.com t2 xxx@126.com t3 020-12345678 test")

原创粉丝点击