最新手机号正则(2020年)
在开发的时候一般会使用到手机号,有的需要通过正则匹配手机号,然后提取。有的需要通过正则表达式判断是否是手机号。还有的情况是需要用正则替换手机号。用正则表达式验证手机号的正确是很常见的做法。
首选需要了解最新手机号的格式如下:
中国内地手机卡号以1开头,共11位数,前7位数字通常称为手机号段。
示例:1XX-YYYY-ZZZZ
- 第1~3位数表示电信运营商。
- 第4~7位数表示地区号码(YYYY)。
- 第8~11位数表示客户号码(ZZZZ)。
注:2010年11月,携号转网政策在部分地区开始试行,对于成功进行携号转网的用户,手机号段不再能体现其当前所属运营商。
中国移动
共计21个号段:1340~1348、135~139、147、148、150~152、157~159、178、182~184、187~188、198
147号段为4G数据上网卡号段、148号段为物联网业务专用号段。2017年新增:148、198。
中国联通
共计12个号段:130~132、145~146、155~156、166、175~176、185~186
145为上网卡号段,146号段为物联网业务专用号段。2017年新增:146、175。
中国电信
共计11个号段:133、1349、149、153、173~174、177、180~181、189、199
其中1349、17400-17405号段:专用于卫星手机。17406-17412号段由工业和信息化部应急通信保障中心持有,用于应急通信需求。2017新增:149、173-174、199。
虚拟运营商
共4个号段:165/167/170/171
上网卡/物联网卡:
14/172/ 无法拨打电话/收发短信
其他未分配的为预留号段或卫星号段。
综合来看
具有短信+语音功能的号段主要有:
前2位 | 第3位 | 说明 |
---|---|---|
13 | 0~9 |
|
15 | 0~3/5~9 |
|
16 | 5~7 |
|
17 | 0~1/3~8 |
|
18 | 0~9 |
|
19 | 1/8~9 |
最新手机号正则表达式如下:
手机号正则JavaScript的js版本如下:
^((13[0-9])|(15[^4,\D])|(16[5-7])|(17[0-1,3-8])|(18[0-9])|(19[1,8-9]))\d{8}$
java中需要对\
进行转义,即两个\\
,手机号正则java版本如下:
^((13[0-9])|(15[^4,\\D])|(16[5-7])|(17[0-1,3-8])|(18[0-9])|(19[1,8-9]))\\d{8}$
参考