iOS oc 身份证正则判断
时间: 2024-08-13 20:07:36 浏览: 61
iOS 中使用正则表达式判断身份证格式及银行卡号格式是否正确(推荐)
在Objective-C中,对于iOS应用的身份证号码验证,通常会使用正则表达式来检查输入是否符合身份证号码的格式。中国大陆居民的身份证号码是由18位数字组成,分为三组:前6位是地区代码,接下来8位是出生日期码,最后4位是校验码(奇数位乘以2相加,偶数位直接相加,然后求和取余11,根据余数补上X或0)。
下面是一个基本的正则表达式示例,用于匹配中国大陆的18位身份证号码:
```objective-c
NSString *regex = @"^(\\d{15}$|^(\\d{17}(0|1|[3-9])|(\\d{15}[2-9]|\\d{18}))$)";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
BOOL isValid = [predicate evaluateWithObject:inputString];
```
这个正则表达式的逻辑是这样的:
- `\\d{15}` 匹配15位数字的身份证号(旧版身份证)。
- `\\d{17}(0|1|[3-9])` 匹配18位数字,第17位为0-9的数字(新版身份证)。
- `(\\d{15}[2-9]|\\d{18})` 匹配18位数字,第17位为2-9的数字(新版身份证,第二组数字)。
- 第二部分用括号包裹,通过`|`表示或的关系,确保匹配任一情况。
阅读全文