/** 身份证号校验 */
- (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}$

posted on 2015-09-24 16:35  hahasimin  阅读(261)  评论(0编辑  收藏  举报