使用JavaScript写一个身份证号校验
时间: 2023-02-25 08:43:35 浏览: 79
要使用JavaScript写一个身份证号校验程序,您可以以下代码为起点:
```
function checkID(id) {
var reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
if (!reg.test(id)) {
return false;
}
var province = id.substr(0, 2);
var birthday = id.substr(6, 8);
var last = id.substr(-1).toUpperCase();
var year = birthday.substr(0, 4);
var month = birthday.substr(4, 2);
var day = birthday.substr(6, 2);
var tempDate = new Date(year + "/" + month + "/" + day);
if (tempDate.getFullYear() != year || tempDate.getMonth() + 1 != month || tempDate.getDate() != day) {
return false;
}
var arr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var lastArr = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
var sum = 0;
for (var i = 0; i < 17; i++) {
sum += id.substr(i, 1) * arr[i];
}
var mod = sum % 11;
if (lastArr[mod] != last) {
return false;
}
return true;
}
```
上面的代码将正则表达式与其他逻辑相结合,以校验身份证号的有效性。其中的正则表达式用于验证身份证号的格式,并通过生日、省份和最后一位校验码等内容,进一步验证其真实性。
阅读全文