日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS之身份证号码全校验与校验位自动补全

發(fā)布時間:2024/5/21 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS之身份证号码全校验与校验位自动补全 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 在項(xiàng)目中進(jìn)行身份證號碼的校驗(yàn),首先有必要了解一下居民身份證的基本構(gòu)成:
    • 長度必須是18位,前17位必須是數(shù)字,第十八位可以是數(shù)字或X;
    • 前兩位必須是以下情形中的一種:11、12、13、14、15、21、22、23、31、32、33、34、35、36、37、41、42、43、44、45、46、50、51、52、53、54、61、62、63、64、65、71、81、82、91;
    • 第7到第14位出生年月日:第7到第10位為出生年份;11到12位表示月份,范圍為01-12;13到14位為合法的日期 ;
    • 第17位表示性別,雙數(shù)表示女,單數(shù)表示男;
    • 第18位為前17位的校驗(yàn)位;算法如下:總和 = (n1 + n11) * 7 + (n2 + n12) * 9 + (n3 + n13) * 10 + (n4 + n14) * 5 + (n5 + n15) * 8 + (n6 + n16) * 4 + (n7 + n17) * 2 + n8 + n9 * 6 + n10 * 3,其中n1表示1位數(shù)字,其它類似;用總和除以11,看余數(shù)是多少, 余數(shù)只可能有0 1 2 3 4 5 6 7 8 9 10這11個數(shù)字。其分別對應(yīng)的最后一位身份證的號碼為1 0 X 9 8 7 6 5 4 3 2;
    • 出生年份的前兩位必須是19或20;
  • 身份證號驗(yàn)證(粗略驗(yàn)證) :如果只是驗(yàn)證是否是18位純數(shù)字或17位純數(shù)字+x,這個方法完全可以適用。
+ (BOOL)validateIdentityCard:(NSString *)identityCard{NSString *pattern = @"(^[0-9]{15})|([0?9]17([0?9]|X))";NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", pattern];BOOL isMatch = [pred evaluateWithObject:identityCard];return isMatch; }
  • 身份證號全校驗(yàn)
+ (BOOL)verifyIDCardNumber:(NSString *)value {value = [value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];int length =0;if (!value) {return NO;} else {length = value.length;if (length !=15 && length !=18) {return NO;}}// 省份代碼NSArray *areasArray =@[@"11",@"12", @"13",@"14", @"15",@"21", @"22",@"23", @"31",@"32", @"33",@"34", @"35",@"36", @"37",@"41", @"42",@"43", @"44",@"45", @"46",@"50", @"51",@"52", @"53",@"54", @"61",@"62", @"63",@"64", @"65",@"71", @"81",@"82", @"91"];NSString *valueStart2 = [value substringToIndex:2];BOOL areaFlag =NO;for (NSString *areaCode in areasArray) {if ([areaCode isEqualToString:valueStart2]) {areaFlag =YES;break;}}if (!areaFlag) {return false;}NSRegularExpression *regularExpression;NSUInteger numberofMatch;int year =0;switch (length) {case 15:year = [value substringWithRange:NSMakeRange(6,2)].intValue +1900;if (year %4 ==0 || (year %100 ==0 && year %4 ==0)) {regularExpression = [[NSRegularExpression alloc]initWithPattern:@"^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$"options:NSRegularExpressionCaseInsensitiveerror:nil];//測試出生日期的合法性}else {regularExpression = [[NSRegularExpression alloc] initWithPattern:@"^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$"options:NSRegularExpressionCaseInsensitiveerror:nil];//測試出生日期的合法性}numberofMatch = [regularExpression numberOfMatchesInString:valueoptions:NSMatchingReportProgressrange:NSMakeRange(0, value.length)];if(numberofMatch >0) {return YES;}else {return NO;}case 18:year = [value substringWithRange:NSMakeRange(6,4)].intValue;if (year %4 ==0 || (year %100 ==0 && year %4 ==0)) {regularExpression = [[NSRegularExpression alloc]initWithPattern:@"^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$"options:NSRegularExpressionCaseInsensitiveerror:nil];//測試出生日期的合法性}else {regularExpression = [[NSRegularExpression alloc]initWithPattern:@"^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$"options:NSRegularExpressionCaseInsensitiveerror:nil];//測試出生日期的合法性}numberofMatch = [regularExpression numberOfMatchesInString:valueoptions:NSMatchingReportProgressrange:NSMakeRange(0, value.length)];if(numberofMatch > 0) {int S = ([value substringWithRange:NSMakeRange(0,1)].intValue + [value substringWithRange:NSMakeRange(10,1)].intValue) *7 + ([value substringWithRange:NSMakeRange(1,1)].intValue + [value substringWithRange:NSMakeRange(11,1)].intValue) *9 + ([value substringWithRange:NSMakeRange(2,1)].intValue + [value substringWithRange:NSMakeRange(12,1)].intValue) *10 + ([value substringWithRange:NSMakeRange(3,1)].intValue + [value substringWithRange:NSMakeRange(13,1)].intValue) *5 + ([value substringWithRange:NSMakeRange(4,1)].intValue + [value substringWithRange:NSMakeRange(14,1)].intValue) *8 + ([value substringWithRange:NSMakeRange(5,1)].intValue + [value substringWithRange:NSMakeRange(15,1)].intValue) *4 + ([value substringWithRange:NSMakeRange(6,1)].intValue + [value substringWithRange:NSMakeRange(16,1)].intValue) *2 + [value substringWithRange:NSMakeRange(7,1)].intValue *1 + [value substringWithRange:NSMakeRange(8,1)].intValue *6 + [value substringWithRange:NSMakeRange(9,1)].intValue *3;int Y = S %11;NSString *M =@"F";NSString *JYM =@"10X98765432";M = [JYM substringWithRange:NSMakeRange(Y,1)];// 判斷校驗(yàn)位if ([M isEqualToString:[value substringWithRange:NSMakeRange(17,1)]]) {return YES;// 檢測ID的校驗(yàn)位}else {return NO;}}else {return NO;}default:return false;} }

總結(jié)

以上是生活随笔為你收集整理的iOS之身份证号码全校验与校验位自动补全的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲剧情在线 | 精品香蕉99久久久久网站 | 国产裸体永久免费视频网站 | 欧美在线观看视频一区 | 9i免费看片黄 | 极品少妇视频 | 一区二区三区伦理片 | 涩涩网站在线观看 | 黄色免费毛片 | 超碰在线伊人 | 伦伦影院午夜理论片 | 亚洲综合在线成人 | 久久精品99北条麻妃 | 黄色片女人 | 国产精品999久久久 在线青草 | 日韩亚洲精品视频 | 麻豆av剧情| av中文天堂在线 | 一本久道久久综合无码中文 | 少妇全黄性生交片 | 少妇高潮网站 | 国产精品无码av在线有声小说 | 国产无遮挡又黄又爽 | 国产精品丝袜黑色高跟鞋 | 亚洲高清在线免费观看 | 性一交一乱一乱一视频 | 久久久999视频 | 舔花蒂 | 亚洲熟妇av一区二区三区漫画 | 西西大胆午夜视频 | 精品国产一区二区视频 | 红桃视频国产 | 精品国产aⅴ一区二区三区四川人 | 中文有码在线 | 国产一级黄色片子 | 美女福利视频在线观看 | 97精品国产97久久久久久春色 | 东北女人av | 五月天激情综合 | 破处视频在线观看 | 中文字幕国产视频 | 亚洲精品国产一区二 | 久久精品99久久久久久 | 人人插人人干 | 99热国产在线 | 亚洲在线视频免费观看 | 激情小说在线 | 天天干狠狠爱 | 黑人一级女人全片 | 色欲久久久天天天综合网精品 | 国产中文字幕久久 | 黄页网站在线播放 | 欧美天堂 | 91精品网 | 久久人妻一区二区 | jiuse九色| 在线观看的黄色网址 | 伊人性视频| h无码动漫在线观看 | 九色porny丨精品自拍视频 | 7x7x7x人成影视 | 国产黄色在线 | 人人超碰在线 | 久久婷婷av | 国产精品国产三级国产在线观看 | 牛牛在线免费视频 | 亚洲av无码乱码国产精品 | 国产精品自拍在线 | 乱子伦视频在线看 | 亚洲aa在线| 91中文字幕 | 成人免费va视频 | 国产精品啊啊啊 | 五月天婷婷在线播放 | 91视频在线免费看 | 一区成人| www.日韩视频 | 亚洲国产视频在线 | 国产精品国产a级 | 中文字幕观看 | 成人免费xxxxxx视频 | 91精品国产综合久久香蕉922 | 欧美视频成人 | 国产精品第6页 | 黄色亚洲视频 | 超碰2025 | 亚洲精品一区二区三区蜜臀 | 最新av免费观看 | 天天插天天干 | 国产91久久婷婷一区二区 | zzjj国产精品一区二区 | 亚洲夜夜夜| av网站大全在线观看 | 新超碰在线 | 日韩乱码人妻无码中文字幕 | 在线观看免费黄色 | 青草视频在线 | 奇米影视77777 | 特大巨交吊性xxxx |