llkkzz111 / ChinaMobilePhoneNumberRegex

匹配**大陆手机号码

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ChinaMobilePhoneNumberRegex

目前国内网络上匹配手机号码的正则表达式很多都无法匹配最新的号码段,影响用户操作,故在此分享一个正则表达式来匹配**大陆的手机号码段。

电信
2G/3G号段(CDMA2000网络)133、153、180、181、189
4G号段 177、173

联通
2G号段(GSM网络)130、131、132、155、156
3G上网卡145
3G号段(WCDMA网络)185、186
4G号段 176、185

移动
2G号段(GSM网络)有134x(0-8)、135、136、137、138、139、150、151、152、158、159、182、183、184。
3G号段(TD-SCDMA网络)有157、187、188
3G上网卡 147
4G号段 178、184

卫星通信 1349

以上内容来自手机号码(百度百科)

虚拟运营商号码段:

电信 1700、1701、1702
联通 1707、1708、1709、171
移动 1705

以上内容来自170号段(百度百科)

整理如下:

130、131、132、133、134、135、136、137、138、139
150、151、152、153、155、156、157、158、159
173、176、177、178
180、181、182、183、184、185、186、187、188、189
171、1700、1701、1702、1705、1707、1708、1709

正则表达式为:
未转义:(^(13\d|15[^4,\D]|17[13678]|18\d)\d{8}|170[^346,\D]\d{7})$
已转义:(^(13\\d|15[^4,\\D]|17[13678]|18\\d)\\d{8}|170[^346,\\D]\\d{7})$

默认 14x 上网卡号段为无效号码,如果希望其为有效号码,则正则表达式为:
未转义:(^(13\d|14[57]|15[^4,\D]|17[13678]|18\d)\d{8}|170[^346,\D]\d{7})$
已转义:(^(13\\d|14[57]|15[^4,\\D]|17[13678]|18\\d)\\d{8}|170[^346,\\D]\\d{7})$

###版本更新

2016.4.5
增加 171 号段支持,分离 14x 号段匹配,完善虚拟运营商号段匹配。

2014.12.19
初次发布。

About

匹配**大陆手机号码

License:MIT License


Languages

Language:Swift 100.0%