说明
身份证号码长度:一代(共15位)、二代(共18位)
性别代码的位置:一代(第15位)、二代(第17位)
判断性别的依据:男基女偶
根据上方这些已知内容,我们可以编写以下函数。
代码示例
/**
* 按身份证号码获取性别
* @idNumber 身份证号码
* @return 男:male;女:female;异常(身份证号码为空或长度、格式错误):undefined
*/
function getGenderByIdNumber(idNumber) {
if (idNumber) {
let genderCode; // 性别代码
if (idNumber.length == 18) { // 二代身份证号码长度为18位(第17位为性别代码)
genderCode = idNumber.charAt(16);
} else if (idNumber.length == 15) { // 一代身份证号码长度为15位(第15位为性别代码)
genderCode = idNumber.charAt(14);
}
if (genderCode && !isNaN(genderCode)) {
// 两代身份证号码的性别代码都为男奇女偶
if (parseInt(genderCode) % 2 == 0) {
return 'female';
}
return 'male';
}
}
}