如何处理电话号码的区号与号码,把区号与号码分开

lvw8000 2007-04-02 02:02:28
如外部传来的号码有

01012345678
02112345678
2112345678
02812345678
045112345667
...

如上面号码,12345678表示电话号码,前面的为区号,有北京上海、成都、黑龙江等,现在如何把010、021、21、028、0451区号提取出来
...全文
905 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmlxk0 2007-04-05
  • 打赏
  • 举报
回复
那就查表吧。
lvw8000 2007-04-05
  • 打赏
  • 举报
回复
To:northwolves(狼行天下)
这样只能处理3位区号的吧,区号有4位、5位的
而且有的时候电信送主叫号码是不送0的
northwolves 2007-04-04
  • 打赏
  • 举报
回复
Function quhao(ByVal phone As String) As String
quhao = Left(phone, 3 + IIf(phone Like "0[1-2]*", 0, 1))
End Function

台湾的比较麻烦
shadowofcity 2007-04-02
  • 打赏
  • 举报
回复
综合判断吧。
还是有规律可寻的
1, 号码第一位没有1 和 0的情况。 所以截取的时候可以考虑从最后截取5位以上没有0和1的
2. 建立一个全国区号表,进行低位到高位的匹配,也就是线匹配2位的再匹配3位的再匹配4位的
hxlvb 2007-04-02
  • 打赏
  • 举报
回复
你先取出前3为,如过是三位区号的那就是三位区号地区的,如果不是,那再取前4位,这样循环就可以了
guyehanxinlei 2007-04-02
  • 打赏
  • 举报
回复
支持
programart_life 2007-04-02
  • 打赏
  • 举报
回复
支持njstalk(春意浓浓) 的办法
虽然现在中国再细分行政区的可能性很小,但是还是要考虑。如果保存全部的区号,再搜索区号以便区分比较灵活,就算并区、分区,不过就是加减几个号码而已。若是按 TechnoFantasy((VB MVP)www.applevb.com) 的,以后区号若有变化就很麻烦。例如某个区号增加了一位或者偏偏出了个01开头的四位。
TechnoFantasy 2007-04-02
  • 打赏
  • 举报
回复
建议你找一下规律,好像01和02开头的都是3位的,03-07开头的都是4位的。
这样只有08、09开头的比较复杂,有4位和5位,这个就要再找规律了(比如094开头的,除了0943以外其它好像都是5位的)
njstalk 2007-04-02
  • 打赏
  • 举报
回复
好像比较麻烦,把全国所有得区号列出来存表里面,然后截取来电号码得前3位或4位进行查找匹配。然后剩下得就是电话号码。因为电话号码存在升位得可能性,所以我觉得截取前面3或4位比从后面截取要好点。
CathySun118 2007-04-02
  • 打赏
  • 举报
回复
这样处理:
现在国内的号码只有8位和七位的。
你把8位的城市列出来
这样你可以分情况处理
if 8位 then
号码=right(str,8)
else
号码=right(str,7)
end if
区号=str-号码
lvw8000 2007-04-02
  • 打赏
  • 举报
回复
注意:我看全国区号列表,青海、西藏的区号有5位的

7,785

社区成员

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

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