最新身份证正则表达式
时间: 2023-11-22 09:46:55 浏览: 141
最新身份证正则表达式如下:
/^([1-6][1-9]|[1-9]0)\d{4}(19|20)\d{2}(0[1-9]|1[0-2])([0-2][1-9]|[1-3]0|31)\d{3}[0-9Xx]$/
该正则表达式可以匹配18位和15位身份证号码,其中18位身份证号码的校验码可以是数字0-9和字母Xx,15位身份证号码没有校验码。
相关问题
js身份证正则表达式
以下是一个简单的 JavaScript 函数,使用正则表达式来验证身份证号码的格式是否正确:
```javascript
function isValidIDCard(idCard) {
// 身份证正则表达式
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return reg.test(idCard);}
```
上述代码仅仅是验证了身份证号码的格式是否正确,而并没有验证身份证号码本身是否合法。如果需要验证身份证号码的合法性,可以使用第三方库或者在线服务。
如果需要使用正则表达式判断当前身份证号是否是22岁,可以先获取当前日期,然后根据身份证号码中的出生日期计算年龄,最后判断是否等于22岁即可。具体代码如下:
```javascript
function is22YearsOld(idCard) {
// 身份证正则表达式
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (!reg.test(idCard)) {
return false;
}
var birthYear = parseInt(idCard.substr(6, 4));
var birthMonth = parseInt(idCard.substr(10, 2));
var birthDay = parseInt(idCard.substr(12,2));
var now = new Date();
var nowYear = now.getFullYear();
var nowMonth = now.getMonth() + 1;
var nowDay = now.getDate();
var age = nowYear - birthYear;
if (nowMonth < birthMonth || (nowMonth == birthMonth && nowDay < birthDay)) {
age--;
}
return age == 22;
}
```
相关问题:
Swift身份证正则表达式
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("身份证号码不合法")
}
```
在上面的代码中,如果身份证号码合法,就会输出 "身份证号码合法";如果身份证号码不合法,就会输出 "身份证号码不合法"。
阅读全文