编写一段js代码校验身份证是否合法
时间: 2024-06-10 08:06:19 浏览: 130
请参考以下代码:
```javascript
function isIdCardNo(str) {
// 验证身份证长度和格式
if (str.length !== 18 || !/^\d{17}[\dXx]$/.test(str)) {
return false;
}
// 验证身份证号码校验位
const weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 权重
const validate = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; // 校验码
let sum = 0;
for (let i = 0; i < 17; i++) {
sum += parseInt(str[i]) * weight[i];
}
const mod = sum % 11;
if (validate[mod] !== str[17].toUpperCase()) {
return false;
}
return true;
}
```
使用方法:
```javascript
const idCardNo = '110101199003074831';
if (isIdCardNo(idCardNo)) {
console.log('身份证号码合法');
} else {
console.log('身份证号码不合法');
}
```
阅读全文