Contents
  1. 1. 1.验证是否为身份证号码
1.验证是否为身份证号码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
+ (BOOL)isCardID:(NSString *)vText
{
NSString* sxString =
@"^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$";
NSPredicate *regextestmobile = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", sxString];
if([regextestmobile evaluateWithObject:vText]){
NSArray *Wi = @[@"7",@"9",@"10",@"5",@"8",@"4",@"2",@"1",@"6",@"3",@"7",@"9",@"10",@"5",@"8",@"4",@"2"];
NSInteger num = 0;
for(int i = 0 ; i < Wi.count ; i++){
NSString *temp = [vText substringWithRange:NSMakeRange(i, 1)];
NSString *wiString = Wi[i];
num += [temp integerValue]*[wiString integerValue];
}
NSInteger result = num%11;
NSArray *y = @[@"1",@"0",@"10",@"9",@"8",@"7",@"6",@"5",@"4",@"3",@"2"];
if(result == 2)
{
NSString *temp = [vText substringWithRange:NSMakeRange(17, 1)];
if([temp isEqualToString:@"x"]|| [temp isEqualToString:@"X"]) return YES;
else return NO;
}else{
NSString *temp = [vText substringWithRange:NSMakeRange(17, 1)];
return [temp isEqualToString:y[result]];
}
}else{
return [regextestmobile evaluateWithObject:vText];
}
}
Contents
  1. 1. 1.验证是否为身份证号码