1企锌、基礎運營商手機卡(Base Operator)
A)支持語音通話、短信于未、數據流量撕攒;
B)號碼長度為 11 位。
中國移動號段:134[0-8],13[5-9],15[0-2,7-9],172,178,18[2-4,7-8],19[5,7,8]
正則表達式:^1(?:34[0-8]|3[5-9]\d|5[0-2,7-9]\d|7[28]\d|8[2-4,7-8]\d|9[5,7,8]\d)\d{7}$
中國聯通號段:130,131,132,155,156,166,175,176,185,186,196
正則表達式:^1(?:3[0-2]|[578][56]|66|96)\d{8}$
中國電信號段:133,153,173,177,180,181,189,19[0,1,3,9]
正則表達式:^1(?:33|53|7[37]|8[019]|9[0139])\d{8}$
中國廣電號段:192
正則表達式:^1(?:92)\d{8}$
基礎運營商手機卡:中國移動號段烘浦、中國聯通號段抖坪、中國電信號段、中國廣電號段
正則表達式:^1(?:34[0-8]|3[5-9]\d|5[0-2,7-9]\d|7[28]\d|8[2-4,7-8]\d|9[5,7,8]\d|3[0-2]\d|[578][56]\d|66\d|96\d|33\d|53\d|7[37]\d|8[019]\d|9[0139]\d|92\d)\d{7}$
2闷叉、虛擬運營商手機卡(Virtual Network Operator)
A)支持語音通話擦俐、短信、數據流量握侧;
B)號碼長度為 11 位蚯瞧。
中國移動號段:170[3,5,6],165
正則表達式:^1(?:70[356]|65\d)\d{7}$
中國聯通號段:170[4,7-9],171,167
正則表達式:^1(?:70[4,7-9]|71\d|67\d)\d{7}$
中國電信號段:170[0-2],162
正則表達式:^1(?:70[0-2]|62\d)\d{7}$
虛擬運營商手機卡:中國移動號段嘿期、中國聯通號段、中國電信號段
正則表達式:^1(?:70[356]|65\d|70[4,7-9]|71\d|67\d|70[0-2]|62\d)\d{7}$
基礎虛擬運營商+虛擬運營商的手機卡:中國移動號段状知、中國聯通號段秽五、中國電信號段、中國廣電號段
正則表達式:^1(?:34[0-8]|3[5-9]\d|5[0-2,7-9]\d|7[28]\d|8[2-4,7-8]\d|9[5,7,8]\d|3[0-2]\d|[578][56]\d|66\d|96\d|33\d|53\d|7[37]\d|8[019]\d|9[0139]\d|92\d|70[356]|65\d|70[4,7-9]|71\d|67\d|70[0-2]|62\d)\d{7}$
3饥悴、物聯網數據卡(IoT Data Card)
A)支持數據流量坦喘;
B)號碼長度為 13 位。
中國移動號段:1440,148
正則表達式:^14(?:40|8\d)\d{9}$
中國聯通號段:1400,146
正則表達式:^14(?:00|6\d)\d{9}$
中國電信號段:1410
正則表達式:^14(?:10)\d{9}$
4西设、上網數據卡(Internet Data Card)
A)支持語音通話(部分)瓣铣、短信、數據流量贷揽;
B)號碼長度為 11 位棠笑。
中國移動號段:147
正則表達式:^1(?:47)\d{8}$
中國聯通號段:145
正則表達式:^1(?:45)\d{8}$
中國電信號段:149
正則表達式:^1(?:49)\d{8}$
5、衛(wèi)星移動通信(Satellite Mobile Communication)
A)支持語音通話禽绪、短信蓖救、數據流量;
B)號碼長度為 11 位印屁。
中國移動號段:1349
正則表達式:^1(?:349)\d{7}$
中國電信號段:1740[0-5]
正則表達式:^1(?:740[0-5])\d{6}$
6循捺、工信部應急通信(MIIT Crisis Communication)
A)支持語音通話、短信雄人、數據流量从橘;
B)號碼長度為 11 位。
支持號段:1740[6-9],1741[0-2]
正則表達式:^174(?:0[6-9]|1[0-2])\d{6}$
7础钠、海事衛(wèi)星通信(Maritime Satellite Communication)
A)支持語音通話恰力、短信、數據流量旗吁;
B)號碼長度為 11 位踩萎。
支持號段:1749
正則表達式:^1(?:749)\d{7}$
說明:
??1)由于攜號轉網的在部分地區(qū)已經試行畅哑,對于成功進行攜號轉網的用戶,手機號段不再能體現其當前所屬運營商剖煌;
??2)根據工信部相關文件浴麻,145、147瞒瘸、149號段允許提供語音通話功能,運營商可以根據用戶需要自主決定是否提供語音通話功能,目前147叹洲、149號段已經有支持語音通話的號碼卡放出。
Python代碼驗證:
import re
def isTelphoneNumber(telphone):
if len(telphone) == 11:
if re.match(r"^1(?:749)\d{7}$", telphone):
return 'MSC'
elif re.match(r"^174(?:0[6-9]|1[0-2])\d{6}$", telphone):
return 'MCC'
elif re.match(r"^1(?:349)\d{7}$", telphone):
return 'CM_SMC'
elif re.match(r"^1(?:740[0-5])\d{6}$", telphone):
return 'CT_SMC'
elif re.match(r"^1(?:47)\d{8}$", telphone):
return 'CM_IDC'
elif re.match(r"^1(?:45)\d{8}$", telphone):
return 'CU_IDC'
elif re.match(r"^1(?:49)\d{8}$", telphone):
return 'CT_IDC'
elif re.match(r"^1(?:70[356]|65\d)\d{7}$", telphone):
return 'CM_VNO'
elif re.match(r"^1(?:70[4,7-9]|71\d|67\d)\d{7}$", telphone):
return 'CU_VNO'
elif re.match(r"^1(?:70[0-2]|62\d)\d{7}$", telphone):
return 'CT_VNO'
elif re.match(r"^1(?:34[0-8]|3[5-9]\d|5[0-2,7-9]\d|7[28]\d|8[2-4,7-8]\d|9[5,7,8]\d)\d{7}$", telphone):
return 'CM_BO'
elif re.match(r"^1(?:3[0-2]|[578][56]|66|96)\d{8}$", telphone):
return 'CU_BO'
elif re.match(r"^1(?:33|53|7[37]|8[019]|9[0139])\d{8}$", telphone):
return 'CT_BO'
elif re.match(r"^1(?:92)\d{8}$", telphone):
return 'CBN_BO'
else:
return 'Error'
elif len(telphone) == 13:
if re.match(r"^14(?:40|8\d)\d{9}$", telphone):
return 'CM_IoT'
elif re.match(r"^14(?:00|6\d)\d{9}$", telphone):
return 'CU_IoT'
elif re.match(r"^14(?:10)\d{9}$", telphone):
return 'CT_IoT'
else:
return 'Error'
else:
return 'Error'
def main():
while 1:
tel = input("請輸入手機號:")
if tel.upper() == 'Q':
print('查詢結束工禾!')
break
else:
result = isTelphoneNumber(tel)
if result == 'Error':
print("你輸入的號碼不正確运提,請重新輸入蝗柔!")
elif result == 'MSC':
print('你的號碼是海事衛(wèi)星通信的。')
elif result == 'MCC':
print('你的號碼是工信部應急通信的民泵。')
elif result == 'CM_SMC':
print('你的號碼是中國移動衛(wèi)星通信的癣丧。')
elif result == 'CT_SMC':
print('你的號碼是中國電信衛(wèi)星通信的。')
elif result == 'CM_IDC':
print('你的號碼是中國移動上網數據卡的栈妆。')
elif result == 'CU_IDC':
print('你的號碼是中國聯通上網數據卡的胁编。')
elif result == 'CT_IDC':
print('你的號碼是中國電信上網數據卡的。')
elif result == 'CM_VNO':
print('你的號碼是中國移動虛擬運營商的鳞尔。')
elif result == 'CU_VNO':
print('你的號碼是中國聯通虛擬運營商的嬉橙。')
elif result == 'CT_VNO':
print('你的號碼是中國電信虛擬運營商的。')
elif result == 'CM_BO':
print('你的號碼是中國移動的寥假。')
elif result == 'CU_BO':
print('你的號碼是中國聯通的市框。')
elif result == 'CT_BO':
print('你的號碼是中國電信的。')
elif result == 'CBN_BO':
print('你的號碼是中國廣電的糕韧。')
elif result == 'CM_IoT':
print('你的號碼是中國移動物聯網數據卡的枫振。')
elif result == 'CU_IoT':
print('你的號碼是中國聯通物聯網數據卡的。')
elif result == 'CT_IoT':
print('你的號碼是中國電信物聯網數據卡的萤彩。')
if __name__ == "__main__":
main()