在前端开发中,验证中国公民身份证格式是否正确通常涉及到对身份证号码的格式和校验码进行校验。以下是一个简单的JavaScript方法,用于验证身份证号码的格式是否正确:
function isValidChineseID(id) {if (id.length !== 18) {return false;}// 正则表达式验证身份证前17位是否为数字,最后一位可以为数字或Xconst reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}([0-9]|X)$/;if (!reg.test(id)) {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]; // 校验码对应值let sum = 0;let index;for (let i = 0; i < id.length - 1; i++) {index = id[i] - '0';sum += index * factor[i];}if (parity[sum % 11] !== id[17].toUpperCase()) {return false;}return true;
}
这个方法首先检查身份证号码的长度是否为18位。然后,它使用正则表达式来验证身份证号码的前17位是否为数字,以及最后一位是否为数字或'X'。最后,它使用ISO 7064:1983.MOD 11-2校验规则来验证最后一位校验码是否正确。
你可以在你的前端代码中使用这个方法,如下所示:
const idNumber = '你的身份证号码';
if (isValidChineseID(idNumber)) {console.log('身份证号码格式正确');
} else {console.log('身份证号码格式不正确');
}