1. 程式人生 > >python判斷給定的手機號是否存在

python判斷給定的手機號是否存在

    今天在註冊一個學習網站的時候手機號輸錯了,系統直接就提醒請輸出正確的手機號,於是就想用python做一個手機號合法性識別的程式,實踐起來也很簡單,就不多解釋了,如下:

#!usr/bin/env python
#encoding:utf-8


'''
__Author__:沂水寒城
功能:判斷手機號是否存在
中國聯通手機號頻段:
                   130,131,132,155,156,185,186,145,176
中國移動手機號頻段:
                   134, 135 , 136, 137, 138, 139, 147, 150, 151,
                   152, 157, 158, 159, 178, 182, 183, 184, 187, 188
中國電信手機號頻段:
                   133,153,189
'''
 
import re
import sys
import os
 
def judgePhoneNumberRight(phoneNum):
    '''
    判斷指定的手機號是否存在
    '''
    if len(str(phoneNum))!=11:
        flag=False
    else:
        if not str(phoneNum).isdigit():
            flag=False
        else: 
            phone_rule=re.compile('^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}')
            res_list=re.findall(phone_rule,str(phoneNum))
            if res_list:
                flag=True
            else:
                flag=False
    if flag:
        print '{} is right!'.format(phoneNum)
    else:
        print '{} is wrong!'.format(phoneNum)


if __name__=='__main__':
    phoneNum='13465787'
    judgePhoneNumberRight(phoneNum)
    
    phoneNum='145203922X3'
    judgePhoneNumberRight(phoneNum)

    phoneNum='14520392233'
    judgePhoneNumberRight(phoneNum)

    phoneNum='15762351234'
    judgePhoneNumberRight(phoneNum)

      結果如下:

13465787 is wrong!
145203922X3 is wrong!
14520392233 is wrong!
15762351234 is right!