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

- (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;

    }

}

转载于:https://www.cnblogs.com/Panda-L/p/4603114.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值