手機號碼正則表達式

更新日期:2019-12-24
注意更新日期柑肴,開發(fā)者要注意以后號碼段更新


  • 更新日志:
    • 時間:2019-12-24
      • 工信部核發(fā)190问麸、192、196骑篙、197號段
      • 中國廣電第一次有了自己的號碼段

開發(fā)項目時鸟蟹,總是要用到一些正則驗證乌妙,就數(shù)手機號碼規(guī)則比較難收集,現(xiàn)總結(jié)如下:

規(guī)則

  • 【數(shù)據(jù)卡】:14號段以前為上網(wǎng)卡專屬號段建钥,如中國聯(lián)通的是145藤韵,中國移動的是147,中國電信的是149等等。
  • 【虛擬運營商】

    電信:170[1700/1701/1702]锦针、162
    移動:1703/1705/1706荠察、165
    聯(lián)通:1704/1707/1708/1709置蜀、171奈搜、167

  • 【衛(wèi)星通信】:

    電信:1740[0-5]
    移動:1349
    工業(yè)和信息化部應(yīng)急通信保障中心 :1740[6-9]悉盆,1741[0-2]

  • 【物聯(lián)網(wǎng)網(wǎng)號】:

    電信:10649、1410[0,9]馋吗、149
    移動:10648焕盟、1440[0,9]、148宏粤、172
    聯(lián)通:10646脚翘、140、146

  • 手機號碼: 13[0-9], 14[5,6,7,8,9], 15[0-3, 5-9], 16[2,5,6,7], 17[0-8], 18[0-9], 19[0-3, 5-9]

    電信號段: 133,149,153,162(虛),170[0,1,2](虛),173,174[0-5](衛(wèi)),177,180,181,189,19[0,1,3,9]
    移動號段: 13[4-9],147,148,15[0-2,7-9],165(虛),170[3,5,6](虛),172,178,18[2-4,7-8],19[5,7,8]
    聯(lián)通號段: 130,131,132,145,146,155,156,166,167(虛),170[4,7,8,9](虛),171(虛),175,176,185,186,196
    廣電號段: 192

實現(xiàn)

我是iOS開發(fā)者绍哎,所以就用Objective-c語言實現(xiàn)了,其它的語言自行轉(zhuǎn)換

簡單格式驗證

如果只是需要驗證手機號碼的格式来农,可以簡單寫成這樣:

/**
 * 手機號碼格式驗證
 */
+(BOOL)isMobile:(NSString *)phoneNum {
    
    NSString *MOBILE = @"^(13[0-9]|14[5-9]|15[0-3,5-9]|16[2,5,6,7]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$";
    NSPredicate *pred_mobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", MOBILE];
    return [pred_mobile evaluateWithObject:phoneNum];
}

嚴格驗證

/**
 * 手機號碼格式驗證
 */
+(BOOL)isTelphoneNumber:(NSString *)telNum{
    
    telNum = [telNum stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
    if ([telNum length] != 11) {
        return NO;
    }
    
    /**
     * 中國移動:China Mobile
     *13[4-9],147,148,15[0-2,7-9],165,170[3,5,6],172,178,18[2-4,7-8],19[5,7,8]
     */
    NSString *CM_NUM = @"^((13[4-9])|(14[7-8])|(15[0-2,7-9])|(165)|(178)|(18[2-4,7-8])|(19[5,7,8]))\\d{8}|(170[3,5,6])\\d{7}$";
    
    /**
     * 中國聯(lián)通:China Unicom
     * 130,131,132,145,146,155,156,166,167,170[4,7,8,9],171,175,176,185,186,196
     */
    NSString *CU_NUM = @"^((13[0-2])|(14[5,6])|(15[5-6])|(16[6-7])|(17[1,5,6])|(18[5,6])|(196))\\d{8}|(170[4,7-9])\\d{7}$";
    
    /**
     * 中國電信:China Telecom
     * 133,149,153,162,170[0,1,2],173,174[0-5],177,180,181,189,19[0,1,3,9]
     */
    NSString *CT_NUM = @"^((133)|(149)|(153)|(162)|(17[3,7])|(18[0,1,9])|(19[0,1,3,9]))\\d{8}|((170[0-2])|(174[0-5]))\\d{7}$";

    /**
     * 中國廣電:China Broadcasting Network
     * 192
     */
    NSString *CBN_NUM = @"^((192))\\d{8}$";
    
    NSPredicate *pred_CM = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CM_NUM];
    NSPredicate *pred_CU = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CU_NUM];
    NSPredicate *pred_CT = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",CT_NUM];
    NSPredicate *pred_CBN = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CBN_NUM];
    BOOL isMatch_CM = [pred_CM evaluateWithObject:telNum];
    BOOL isMatch_CU = [pred_CU evaluateWithObject:telNum];
    BOOL isMatch_CT = [pred_CT evaluateWithObject:telNum];
    BOOL isMatch_CBN = [pred_CBN evaluateWithObject:telNum];
    if (isMatch_CM || isMatch_CT || isMatch_CU || isMatch_CBN) {
        return YES;
    }
    
    return NO;
}

當然,上面的正則方法分拆開來崇堰,就可以單獨驗證號段的歸屬了沃于!
PS:攜號轉(zhuǎn)網(wǎng)這種特殊情況,咱們就先不考慮了海诲,考慮了也沒用繁莹!

更新日期:2019-12-24

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市特幔,隨后出現(xiàn)的幾起案子咨演,更是在濱河造成了極大的恐慌,老刑警劉巖蚯斯,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薄风,死亡現(xiàn)場離奇詭異,居然都是意外死亡拍嵌,警方通過查閱死者的電腦和手機村刨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撰茎,“玉大人嵌牺,你說我怎么就攤上這事×浜” “怎么了逆粹?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長炫惩。 經(jīng)常有香客問我僻弹,道長,這世上最難降的妖魔是什么他嚷? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任蹋绽,我火速辦了婚禮芭毙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卸耘。我一直安慰自己退敦,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布蚣抗。 她就那樣靜靜地躺著侈百,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翰铡。 梳的紋絲不亂的頭發(fā)上钝域,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音锭魔,去河邊找鬼例证。 笑死,一個胖子當著我的面吹牛迷捧,可吹牛的內(nèi)容都是我干的织咧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼党涕,長吁一口氣:“原來是場噩夢啊……” “哼烦感!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起膛堤,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤手趣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肥荔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绿渣,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年燕耿,在試婚紗的時候發(fā)現(xiàn)自己被綠了中符。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片生均。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡膊升,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桃笙,到底是詐尸還是另有隱情蚜锨,我是刑警寧澤档插,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站亚再,受9級特大地震影響郭膛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜氛悬,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一则剃、第九天 我趴在偏房一處隱蔽的房頂上張望耘柱。 院中可真熱鬧,春花似錦棍现、人聲如沸调煎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汛蝙。三九已至烈涮,卻和暖如春朴肺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坚洽。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工戈稿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讶舰。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓鞍盗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跳昼。 傳聞我的和親對象是個殘疾皇子般甲,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容