美文网首页
iOS校验二代身份证(正则加校验和)

iOS校验二代身份证(正则加校验和)

作者: fanly1987444 | 来源:发表于2016-03-30 17:56 被阅读323次

二代身份证除了位数和各位表达的含义有限制外,还有一个校验和的问题,这篇文章就是来解决这个问题。网络上应该有对应的Java代码,我在这里这是把Java代码转换成了oc的代码,供大家使用。已经经过测试,验证正确。

- (BOOL)validateIdentityCard:(NSString *)identityCard
{
  BOOL flag;
  if (identityCard.length <= 0) {
      flag = NO;
      return flag;
  }

  flag = [identityCardPredicate evaluateWithObject:identityCard];

  flag = flag && [self isRealIDCode:identityCard];

  return flag;

}

- (BOOL)isRealIDCode:(NSString *)realCode {

  if (realCode.length < 18) {
      return false;
  }

  NSArray *ds = @[@7, @9, @10, @5, @8, @4, @2, @1, @6, @3, @7, @9, @10, @5, @8, @4, @2];
  NSInteger total = 0;

  for (NSInteger i = 0; i < 17; i++) {
    
      NSRange currentRange = NSMakeRange(i, 1);
      NSString *currentCode = [realCode substringWithRange:currentRange];
      NSInteger currentCodeInteger = [currentCode integerValue];
    
      NSInteger dsi = [ds[i] integerValue];
      total += currentCodeInteger * dsi;
  }

  total = total % 11;
  NSArray *ends = @[@"1", @"0", @"x", @"9", @"8", @"7", @"6", @"5", @"4", @"3", @"2"];
  NSString *end = ends[total];

  if ([end isEqualToString:[[realCode substringWithRange:NSMakeRange(17, 1)] lowercaseString]]) {
      return YES;
  }

  return NO;
}

相关文章

  • iOS校验二代身份证(正则加校验和)

    二代身份证除了位数和各位表达的含义有限制外,还有一个校验和的问题,这篇文章就是来解决这个问题。网络上应该有对应的J...

  • 二代居民身份证更严格校验方法。

    正常校验二代身份证是否合法,都只是校验位数与正则判断,但是身份证也有一个算法 根据最后一位校验位能够计算出这个身份...

  • 基础工具方法记录

    身份证号正则校验 手机号校验 座机号校验 json序列化处理

  • ios身份证精确校验

    ios身份证精确校验

  • iOS开发常用工具类

    关于正则表达式判断: 1.手机号校验 2.传真、固话校验 3.车牌号校验 4.身份证号码校验 5.ip地址校验 6...

  • js实现身份证精确校验

    之前我们前端对身份证的校验,都是用的正则校验legalTex = /^\d{6}(18|19|20)\d{2}(0...

  • js实现身份证精确校验

    之前我们前端对身份证的校验,都是用的正则校验legalTex = /^\d{6}(18|19|20)\d{2}(0...

  • 正则表达式

    //正则校验html标签let reg = /<[^<>]+>/g //正则校验%let regP = /[%]/...

  • iOS 身份证号码校验

    问题:身份证校验 最近在公司项目中遇到身份证号码校验的问题,按照之前经验都是直接撸袖子上正则匹配,简单粗暴出成果。...

  • js常用正则校验

    1、校验手机号 2、校验身份证号 3、校验护照号 4、校验字母和英文 5、校验字母+英文(5-6位)

网友评论

      本文标题:iOS校验二代身份证(正则加校验和)

      本文链接:https://www.haomeiwen.com/subject/zhcelttx.html