Swift身份证正则表达式
时间: 2023-01-31 13:01:21 浏览: 212
Swift 中身份证号码的正则表达式如下:
```
^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$
```
这个正则表达式可以用来验证 18 位身份证号码的合法性,其中号码中的 X 表示数字 10。
如果你想验证 15 位身份证号码的合法性,可以使用下面的正则表达式:
```
^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}$
```
使用正则表达式时,你可以使用 Swift 的 `range(of:pattern:options:range:locale:)` 方法来搜索字符串中是否存在符合规则的子串。
例如:
```
let regex = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$"
let idNumber = "123456198906052233"
if idNumber.range(of: regex, options: .regularExpression) != nil {
print("身份证号码合法")
} else {
print("身份证号码不合法")
}
```
在上面的代码中,如果身份证号码合法,就会输出 "身份证号码合法";如果身份证号码不合法,就会输出 "身份证号码不合法"。
阅读全文