/** 身份证号校验 */
- (BOOL)checkIDNum:(NSString *)IDNumber {
if (![IDNumber isValid]) { //18位身份证号
NSString *regex = @"^\\d{6}((1[89])|(2\\d))\\d{2}((0\\d)|(1[0-2]))((3[01])|([0-2]\\d))\\d{3}(\\d|X)$";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
[pred evaluateWithObject:IDNumber];
return NO;
}
return YES;
}
18位的身份证号正则表达式:^\d{6}((1[89])|(2\d))\d{2}((0\d)|(1[0-2]))((3[01])|([0-2]\d))\d{3}(\d|X)$
15位的身份证号正则表达式:^\d{8}((0\d)|(1[0-2]))((3[01])|([0-2]\d))\d{3}$