高分算法求解(提取手机号码的智能算法)

citymice 2002-12-11 02:19:12
大家可以把下面的代码复制到vb里面的代码窗口运行以下,我这个算法很愚蠢
提取出来的可以不是真正有用的手机号码,请大家帮助我想一个聪敏一点的算法
再给你一个限制的条件:被提取的字符串不会很长 最多“64154224,13916358862“21个长度 我的要求就是提出取注册用户电话号码里的有用手机号码,100分

Private Sub Form_Load()
MsgBox GetMobileno("65131300,13017256442")
Unload Me
End Sub

Function GetMobileno(Tel As String) As String
Dim Place(1 To 8) As Integer
Dim i As Integer
Place(1) = InStr(1, Tel, "130")
Place(2) = InStr(1, Tel, "131")
Place(3) = InStr(1, Tel, "133")
Place(4) = InStr(1, Tel, "135")
Place(5) = InStr(1, Tel, "136")
Place(6) = InStr(1, Tel, "137")
Place(7) = InStr(1, Tel, "138")
Place(8) = InStr(1, Tel, "139")
For i = 1 To 8
If Place(i) > 0 Then
GetMobileno = Mid(Tel, Place(i), 11)
End If
Next i
End Function
...全文
40 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
citymice 2002-12-11
  • 打赏
  • 举报
回复
还有的同志写成这样64154224/13916358862
citymice 2002-12-11
  • 打赏
  • 举报
回复
有些人甚至不加区分就写成这样6415422413916358862
citymice 2002-12-11
  • 打赏
  • 举报
回复
如果限制了,还会有这个问题吗,大哥,你怎么知道人家在两个电话之间加,号 分号也可以呀,这没有限制呀,这个程序显然不可取,大家还有什么更聪敏点的程序吗 ,有人写过再网页里面提取email地址的程序 根据@判断,这个程序应该比我的提取手机号码的复杂多了, 手机的除了长度11位,以130..139开头,整个别提取的字段长度为21,这就是给大家的已知条件,谁能写出来个程序,和人判断出来的一样,为什么弱智都能识别的东西,程序却很做不到,我们不是弱智呀
nik_Amis 2002-12-11
  • 打赏
  • 举报
回复
不太明白,你为什么不分开?
有区号那?

try::

aPhones() =split(sPhones,",")
for nIndex=0 to ubound(aphones)
if len(aphones(n))=11 and IsNumeric(aphones(n)) then
msgbox "mobile"
else
msgbox "phone"
endif
next


7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧