iOS驗(yàn)證身份證號(hào)碼是否合法

正好用到,作為紀(jì)錄,代碼丟完就走

//驗(yàn)證身份證號(hào)碼
+(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;
}

實(shí)際使用場(chǎng)景

- (void)textFieldDidEndEditing:(UITextField *)textField{
    if (textField == _tfId) {
            if (![MyTool checkIdentityCardNo:textField.text]) {
                [self showMessage:@"請(qǐng)輸入合法的身份證號(hào)"];
                _tfId.text = @"";
            }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容