ios常用知识总结(2) : 手机号判断、身份证号判断、字符串为空判断

(1)判断一下是否是手机号

- ( BOOL )isMobileNumber:( NSString *)mobileNum {
   
    //    电信号段 :133/153/180/181/189/177
    //    联通号段 :130/131/132/155/156/185/186/145/176
    //    移动号段 :134/135/136/137/138/139/150/151/152/157/158/159/182/183/184/187/188/147/178
    //    虚拟运营商 :170
    NSString *MOBILE = @"^1(3[0-9]|4[57]|5[0-35-9]|8[0-9]|7[06-8])\\d{8}$" ;
   
    NSPredicate *regextestmobile = [ NSPredicate  predicateWithFormat : @"SELF MATCHES %@" , MOBILE];
   
    return [regextestmobile evaluateWithObject :mobileNum];
}



(2)字符串为空判断

-( BOOL ) isBlankString:( NSString  *)string {
   
    if (string ==  nil  || string ==  NULL ) {
        return  YES ;
    }
   
    if ([string  isKindOfClass :[ NSNull  class ]]) {
        return  YES ;
    }
   
    if ([[string  stringByTrimmingCharactersInSet :[ NSCharacterSet  whitespaceCharacterSet ]]  length ]== 0 ) {
        return  YES ;
    }
   
    return  NO ;
   
}

(3)身份证号判断

- (BOOL)isIdCardNumber:(NSString *)IDNumber {

    NSMutableArray *IDArray = [NSMutableArray array];

    for (int i = 0; i <18; i++) {

        NSRange range = NSMakeRange(i, 1);

        NSString *subString = [IDNumber substringWithRange:range];

        [IDArray addObject:subString];

    }

    // 系数数组

    NSArray *coefficientArray = @[@7@9@10@5@8@4@2@1@6@3@7@9@10@5@8@4@"2"];

    // 余数数组

    NSArray *remainderArray = @[@"1"@"0"@"X"@"9"@"8"@"7"@"6"@"5"@"4"@"3"@"2"];

    // 每一位身份证号码和对应系数相乘之后相加所得的和

    int sum = 0;

    for (int i = 0; i <17; i++) {

        int coefficient = [coefficientArray[i] intValue];

        int ID = [IDArray[i] intValue];

        sum += coefficient * ID;

    }

    // 这个和除以11的余数对应的数

    NSString *str = remainderArray[(sum % 11)];

    // 身份证号码最后一位

    NSString *string = [IDNumber substringFromIndex:17];

    // 如果这个数字和身份证最后一位相同,则符合国家标准,返回YES

    return [strisEqualToString:string];

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值