iOS 一些常用的小东西

#pragma mark - 定时器调用方法

- (void)timerBegin:(NSTimer *)timer

{

    self.registerView.verificationButton.enabled = NO;

    [self.registerView.verificationButton setTitle:[NSString stringWithFormat:@"(%d)重新发送",remainTime] forState:UIControlStateDisabled];//注意此处状态为UIControlStateDisabled

    [self.registerView.verificationButton setBackgroundColor:[UIColor colorWithRed:181/255.0 green:181/255.0 blue:181/255.0 alpha:1]];

    

    remainTime -= 1;

    

    if (remainTime == -1)

    {

        [self.myTimer invalidate];

        self.myTimer = nil;

        

        remainTime = 59;

        self.registerView.verificationButton.enabled = YES;

        [self.registerView.verificationButton setTitle:@"获取验证码" forState:UIControlStateNormal];

        [self.registerView.verificationButton setBackgroundColor:[UIColor colorWithRed:152/255.0 green:217/255.0 blue:252/255.0 alpha:1]];

        

        [timer invalidate];

        timer = nil;

    }

}

 

/*手机号码验证 MODIFIED BY HELENSONG*/

- (BOOL)isValidateMobile:(NSString *)mobile

{

    if ([mobile isEqualToString:@""]) {

        return YES;

    }

    //手机号以13 1518开头,八个 \d 数字字符

    NSString *phoneRegex = @"^((13[0-9])|(15[^4,\\D])|(18[0,0-9]))\\d{8}$";

    NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",phoneRegex];

    return [phoneTest evaluateWithObject:mobile];

}

 

#pragma mark - 身份证识别

- (BOOL)checkIdentityCardNo:(NSString*)cardNo

{

    if (cardNo.length != 18) {

        return  NO;

    }

    NSArray* codeArray = [NSArray arrayWithObjects:@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2", nil];

    NSDictionary* checkCodeDic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"1",@"0",@"X",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2", nilforKeys:[NSArray arrayWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10", nil]];

    

    NSScanner* scan = [NSScanner scannerWithString:[cardNo substringToIndex:17]];

    

    int val;

    BOOL isNum = [scan scanInt:&val] && [scan isAtEnd];

    if (!isNum) {

        return NO;

    }

    int sumValue = 0;

    

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

        sumValue+=[[cardNo substringWithRange:NSMakeRange(i , 1) ] intValue]* [[codeArray objectAtIndex:i] intValue];

    }

    

    NSString* strlast = [checkCodeDic objectForKey:[NSString stringWithFormat:@"%d",sumValue%11]];

    

    if ([strlast isEqualToString: [[cardNo substringWithRange:NSMakeRange(17, 1)]uppercaseString]]) {

        return YES;

    }

    return  NO;

}

posted @ 2015-10-29 16:08  搬砖工1号  阅读(169)  评论(0编辑  收藏  举报