iOS驗證身份證號碼是否合法

正好用到,作為紀錄,代碼丟完就走

//驗證身份證號碼
+(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;
}

實際使用場景

- (void)textFieldDidEndEditing:(UITextField *)textField{
    if (textField == _tfId) {
            if (![MyTool checkIdentityCardNo:textField.text]) {
                [self showMessage:@"請輸入合法的身份證號"];
                _tfId.text = @"";
            }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,552評論 25 708
  • 從三月份找實習到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍閱讀 42,374評論 11 349
  • 決定去澳門之前,我有些緊張。這個曾被不同體制殖民的地方,是容易相處還是難以融入呢? 我為此花了幾個小時在網(wǎng)上認認真...
    努力攢錢的二花閱讀 2,164評論 0 0
  • 姓名,成俊萍,東莞耀升機電有限公司 【日精進打卡第6天】 【知~學(xué)習】 《六項精進》誦讀5遍 ,累計20遍 《大學(xué)...
    成俊萍閱讀 112評論 0 0
  • 初入蜀地,便被窗外飄蕩著的火鍋香氣吸引,雖然說此行目的就是吃正宗成都小吃,可是這座城還是留下了太多回憶。 蠶蠶難得...
    躲在角落的cc閱讀 467評論 0 0