身份证号码是每个中国公民的重要身份标识,对于验证身份证号码的真伪,我们可以通过编写JavaScript函数来实现。以下是一篇详细介绍如何用JavaScript编写身份证号验证方法的文章,帮助您轻松排查信息真伪。
1. 身份证号码简介
身份证号码由18位数字组成,其中:
- 前6位为行政区划代码,代表身份证持有人的户籍所在地。
- 接下来的8位为出生日期码,格式为YYYYMMDD。
- 接下来的3位为顺序码,其中奇数分配给男性,偶数分配给女性。
- 最后一位为校验码,用于验证身份证号码的正确性。
2. 校验码计算方法
校验码的计算方法如下:
- 将身份证号码的前17位数字分别乘以不同的系数(从左至右分别为:7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)。
- 将乘积相加。
- 将相加后的结果除以11,得到余数。
- 根据余数,通过查表得到对应的校验码。
校验码查表如下:
| 余数 | 校验码 |
|---|---|
| 0 | 1 |
| 1 | 0 |
| 2 | X |
| 3 | 9 |
| 4 | 8 |
| 5 | 7 |
| 6 | 6 |
| 7 | 5 |
| 8 | 4 |
| 9 | 3 |
| 10 | 2 |
3. JavaScript编写身份证号验证方法
以下是一个简单的JavaScript函数,用于验证身份证号码的真伪:
function validateIDCard(idCard) {
// 确保身份证号码长度为18位
if (idCard.length !== 18) {
return false;
}
// 计算校验码
const factors = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
const checksumTable = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
let sum = 0;
for (let i = 0; i < 17; i++) {
const digit = parseInt(idCard[i]);
if (isNaN(digit)) {
return false;
}
sum += digit * factors[i];
}
const remainder = sum % 11;
const checksum = checksumTable[remainder];
// 检查校验码是否正确
return idCard[17] === checksum;
}
// 示例
console.log(validateIDCard('11010519491231002X')); // 输出:true
console.log(validateIDCard('110105194912310021')); // 输出:false
4. 总结
通过本文,您已经学会了如何用JavaScript编写身份证号验证方法。在实际应用中,您可以利用这个方法来快速排查身份证号码的真伪。希望这篇文章对您有所帮助!
