您所在的位置:小祥子 » 编程 » ASP » 正文

ASP手机号与邮箱正则表达式

时间:2015-01-23 编辑:佚名 来源:互联网

1、通过正则表达式可以提取到手机号与邮箱

2、百度搜索某一个行业,可以出现大量相关结果

是不是想到可以通过这两个,做一个提取某行业联系方式的办法呢?没错,很多营销软件就是这么做的。接下来看正则代码。

[1][3|5]\d{9} 显而易见,这是提取手机号的,1开头 第二位是3或者5,后面再加9个数字,11位手机号,但是可以再改改,因为现在18X,17X,14X的号段都有了~

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 邮箱的正则表达式,主要是两个符号@与.,下面看一段完整的代码。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ASP正则表达式提取手机号码和email地址</title>
</head>
<body>
<%
dim mode
mode=request("mode")
select case mode
case "fenxi"
call getTEL()
end select
'获取电话号码:
sub getTEL()
Server.ScriptTimeout=36000
dim str_url,startid,endid
str_url=trim(request("str_url"))
startid=trim(request("startid"))
endid=trim(request("endid"))
str_RegExp=trim(request("str_RegExp"))
dim i
for i=cint(startid) to cint(endid)
call fenxi(getData(replace(str_url,"{id}",i)),str_RegExp)
next
response.Write("<br><div align=center><input onClick=""javascript:window.open('?mode=textbox','_self');"" type=""button"" name=""Submit"" value=""重新提取""> <br/></div>")
response.End()
end sub
public Function getData(byval RemoteFileUrl)
    dim Retrieval
  Set Retrieval = Server.CreateObject("MS"&"XM"&"L2.XM"&"LHT"&"TP")
   With Retrieval
    .Open "Get", RemoteFileUrl, False, "", ""
    .Send
   if .readyState=4 then
     if .status = 200 then
  flag=true
     GetRemoteData = .ResponseBody
     else
   flag=false
      GetRemoteData ="flase"
     end if
   else
   Set Retrieval = Nothing
   Exit function
  end if
  if Err.Number <> 0 then
    Err.Clear
    Set Retrieval = Nothing
    Exit Function
  end if
  End With
  Set Retrieval = Nothing
  getData=StreamToText(GetRemoteData)
end function
Public Function StreamToText(byval stream)
  dim sm
  If IsNull(stream) Then
   StreamToText = ""
  Else
   Set sm = server.CreateObject("ADO" & "DB.Stre" & "am"):sm.Open:sm.Type = 1
   sm.Write(stream)
   sm.Position = 0
   sm.Type = 2
   sm.charset = "gb2312"
   sm.Position = 0
   StreamToText = sm.ReadText()
   sm.Close:Set sm = Nothing
  End If
End Function

sub fenxi(byval content,byval str_RegExp)
dim str,objRegExp,strs,Matches,Match    
str=replace(replace(content,"<html>",""),"</html>","")
Set objRegExp = New Regexp'设置配置对象
objRegExp.IgnoreCase = True'忽略大小写
objRegExp.Global = True'设置为全文搜索
objRegExp.Pattern = str_RegExp
strs=trim(str)
Set Matches =objRegExp.Execute(strs)'开始执行配置
i=0
For Each Match in Matches
 if InStr(RetStr,Match.Value &",<br/>"&vbcrlf)=0 then
  i=i+1
  RetStr = RetStr & Match.Value &",<br/>"&vbcrlf
 end if
Next
response.Write RetStr
response.Flush()
end sub
%>
<table  border="0" align="center" cellpadding="0" cellspacing="5">
  <form name="form1" method="post" action="?">
  <input type="hidden" name="mode" value="fenxi">
 
  <tr>
    <td align="center">
      <input name="str_url" type="text" id="str_url" value="show.asp?id={id}" size="50">
      <font color="#FF0000">*<span class="STYLE2">{id}为序号</span></font> </td>
  </tr>
  <tr>
    <td align="center">起
      <input name="startid" type="text" id="startid" value="1" size="10" onChange="if(/\D/.test(this.value)){alert('“起始ID”只能输入整数!');this.value='';}"/>止
<input name="endid" type="text" id="endid" value="2" size="10" onChange="if(/\D/.test(this.value)){alert('“结束ID”只能输入整数!');this.value='';}"/>
<font color="#FF0000">*</font></td>
  </tr>
  <tr>
    <td align="center"><label>
      <input name="str_RegExp" type="radio" value="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
      EMAIL
       
      <input name="str_RegExp"  type="radio" value="[1][3|5]\d{9}" checked>
      手机号码
    </label></td>
  </tr>
  <tr>
    <td align="center"><input type="submit" name="Submit" value="提交">
      <label></label></td>
  </tr></form>
</table>
</body>
</html>