"```markdown
验证中国公民身份证格式是否正确
身份证号码是中国公民的唯一标识,它的格式和校验规则是确定的。下面是一个方法,用于验证中国公民身份证格式是否正确。
/**
* 验证中国公民身份证格式是否正确
* @param {string} idNumber 身份证号码
* @returns {boolean} 验证结果,true 表示格式正确,false 表示格式错误
*/
function verifyIdNumber(idNumber) {
const regExp = /(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)/; // 身份证号码的正则表达式
if (regExp.test(idNumber)) {
// 判断身份证号码的长度和校验位
if (idNumber.length === 15) {
const year = idNumber.substring(6, 8);
const month = idNumber.substring(8, 10);
const day = idNumber.substring(10, 12);
const birthday = new Date(`19${year}/${month}/${day}`);
return (
birthday.getYear() === parseInt(year, 10) &&
birthday.getMonth() + 1 === parseInt(month, 10) &&
birthday.getDate() === parseInt(day, 10)
);
} else if (idNumber.length === 18) {
const year = idNumber.substring(6, 10);
const month = idNumber.substring(10, 12);
const day = idNumber.substring(12, 14);
const birthday = new Date(`${year}/${month}/${day}`);
return (
birthday.getFullYear() === parseInt(year, 10) &&
birthday.getMonth() + 1 === parseInt(month, 10) &&
birthday.getDate() === parseInt(day, 10)
);
}
}
return false;
}
使用该方法,可以方便地验证一个身份证号码的格式是否正确。比如:
const idNumber = '110101199001011234';
const isValid = verifyIdNumber(idNumber);
console.log(isValid); // 输出 true
请注意,该方法只验证身份证号码的格式是否正确,并不对身份证的真实性进行验证。