码迷,mamicode.com
首页 > 移动开发 > 详细

Object-C判断手机(固话)号码是否合法

时间:2015-06-26 21:03:54      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

- (BOOL)isMobileNumber:(NSString *)mobileNum

{

    /*

     * 手机号码

     * 中国移动号段:1341351361371381391501511521571581591471821831841871881705178

     * 中国联通号段:130131132145145属于联通无线上网卡号段)、155156185186 1761709

     * 中国电信号段:133 153 180 181 1891700177

     */

    /*

     * 中国移动:China Mobile

     * 1341351361371381391501511521571581591471821831841871881705178

    */

    NSString * CM = @"^1((3[4-9]|47|5[0127-9]|78|8[23478])[0-9]|705)\\d{7}$";

    /*

    * 中国联通:China Unicom

    * 130131132145145属于联通无线上网卡号段)、155156185186 1761709176

    */

    NSString * CU = @"^1((3[0-2]|45|5[56]|76|8[56])[0-9]|709)\\d{7}$";

    /*

    * 中国电信:China Telecom

    * 133 153 180 181 1891700177

    */

    NSString * CT = @"^1((33|53|8[019]|77)[0-9]|700)\\d{7}$";

    /*

    * 大陆地区固话及小灵通

    * 区号:0开头 3-5(西藏部分地区区号为5)      010(北京)| 020(广州)| 021(上海)| 022(天津)| 023(重庆)| 024(沈阳)| 025(南京)| 027(武汉)| 028(成都)| 029(西安)| 031*(河北)| 035*(山西)| 037*(河南)| 041*(辽宁)| 043*(吉林)| 045*(黑龙江)| 047*(内蒙古)| 051*(江苏)| 053*(山东)| 055*(安徽)| 057*(浙江)| 059*(福建)| 071*(湖北)| 073*(湖南)| 075*(广东)| 077*(广西)| 081*(四川)| 085*(贵州)| 087*(云南)| 089*(西藏)| 091*(陕西)| 093*(甘肃)| 095*(宁夏)| 097*(青海)| 099*(新疆)|

    * 号码:七位或八位

     

    * 400号码: 统一的400XXXXXXX,主用途为企业呼叫中心接入码

    * 800号码800开头的10位号码,其中前3800为号码的冠名,第2位段(4-6位)代表区号,第3位段即后4位做为企业代码

    */

    NSString * PHS = @"^0\\d{2,4}\\d{7,8}|400\\d{7}|800\\d{7}$";

    

    NSPredicate *regextestcm = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CM];

    NSPredicate *regextestcu = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CU];

    NSPredicate *regextestct = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", CT];

    NSPredicate *regextestphs = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", PHS];

    

    if (([regextestcm evaluateWithObject:mobileNum] == YES)

        || ([regextestct evaluateWithObject:mobileNum] == YES)

        || ([regextestcu evaluateWithObject:mobileNum] == YES)

        || ([regextestphs evaluateWithObject:mobileNum] == YES)

        ) {

        return YES;

    } else {

        return NO;

    }

}

Object-C判断手机(固话)号码是否合法

标签:

原文地址:http://www.cnblogs.com/Panda-L/p/4603114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!