//验证身份证号码
+(BOOL)checkIdentityCardNo:(NSString*)cardNo
{
if(cardNo.length!=18)
{
returnNO;
}
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]];intval;
BOO LisNum = [scan scanInt:&val] && [scan isAtEnd];
if(!isNum)
{
return NO;
}
int sumValue =0;
for(inti =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;
}
文/静花寒(简书作者)
原文链接:http://www.jianshu.com/p/61d45e8d20ca
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。