用JavaScript实现一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
时间: 2023-08-09 21:05:31 浏览: 101
好的,以下是使用JavaScript实现身份证号码校验的代码实现,校验规则与上面的Java实现相同:
```javascript
function validateIdCard(idCard) {
if (idCard.length !== 18) {
return false;
}
let weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
let codeArr = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
let sum = 0;
for (let i = 0; i < 17; i++) {
let c = idCard.charAt(i);
if (c < '0' || c > '9') {
return false;
}
sum += (c - '0') * weight[i];
}
let checkCode = (12 - sum % 11) % 11;
let lastChar = idCard.charAt(17);
if (checkCode === 10) {
return lastChar === 'X' || lastChar === 'x';
} else {
return lastChar === codeArr[checkCode];
}
}
```
您可以调用 `validateIdCard` 方法来判断身份证号码是否合法。例如:
```javascript
let idCard = '31010119900101001X';
if (validateIdCard(idCard)) {
console.log('身份证号码合法');
} else {
console.log('身份证号码不合法');
}
```
请注意,这只是一个简单的实现,可能无法覆盖所有的身份证号码格式。在实际使用中,可能需要更完善的实现。
阅读全文