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, 15,18开头,八个 \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", nil] forKeys:[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;
}