Regex 手机号 座机 正則表達式

近期在工作中须要推断一个号码是否是手机号,是否是座机号。

在网上也搜到了大家总结的方法,没有直接使用这些方法是由于:手机号码在不断開始新的号码段(比方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;

可是。 以上所列正則表達式仅仅须要稍作改动就可以支持以上所列格式,请开动脑筋自己解决吧:)。

posted @ 2017-07-20 15:15  lytwajue  阅读(212)  评论(0编辑  收藏  举报