最近在工作中需要判断一个号码是否是手机号,是否是座机号。
在网上也搜到了大家总结的方法,没有直接使用这些方法是因为:手机号码在不断开始新的号码段(比如17x),座机号中个别区号由于行政区域的变化而废除。
这里的手机和座机的正则表达式基于本文作者目前找到的最新的手机号码段,区号(截止到2015年8月)。
座机号码:http://baike.baidu.com/view/103379.htm.
new Regex(@"^0?(10|(2|3[1,5,7]|4[1,5,7]|5[1,3,5,7]|7[1,3,5,7,9]|8[1,3,7,9])[0-9]|91[0-7,9]|(43|59|85)[1-9]|39[1-8]|54[3,6]|(701|580|349|335)|54[3,6]|69[1-2]|44[0,8]|48[2,3]|46[4,7,8,9]|52[0,3,7]|42[1,7,9]|56[1-6]|63[1-5]|66[0-3,8]|72[2,4,8]|74[3-6]|76[0,2,3,5,6,8,9]|82[5-7]|88[1,3,6-8]|90[1-3,6,8,9])\d{7,8}$");
手机号码:http://baike.baidu.com/view/58286.htm
new Regex(@"^0?(13\d|14[5,7]|15[0-3,5-9]|17[0,6-8]|18\d)\d{8}$");
请注意,本正则表达式:
支持以下格式手机号:013622335533,13622335533;座机号:01087654321,1087654321
不支持以下格式手机号:17951139012345678;座机: 010-88554433;(010)85443322;+86 10 32454433;
但是, 以上所列正则表达式只需要稍作修改即可支持以上所列格式,请开动脑筋自己解决吧:)。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-07 06:11:59