在哪一行报的错,错误是什么,可重现的身份证号是什么。用这个简单的测试下看看
validateIDCard(idCard) {
// 检查长度和格式
const idCardPattern = /^[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}[\dXx]$/;
if (!idCardPattern.test(idCard)) {
return false;
}
// 校验码计算规则
const factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
const parity = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
const code = idCard.substring(17).toUpperCase();
// 计算校验码
let sum = 0;
for (let i = 0; i < 17; i++) {
sum += idCard[i] * factor[i];
}
const checkCode = parity[sum % 11];
// 验证最后一位校验码
return checkCode === code;
}
扫一扫访问 Blade技术社区 移动端