js方法实现通过身份证号码获取出生日期和性别
实现方法如下所示
1.根据身份证号码获取出生日期
/**
* @param idCard
*/
function getBirth(idCard) {
var birthday = "";
if(idCard != null && idCard != ""){
if(idCard.length == 15){
birthday = "19"+idCard.slice(6,12);
} else if(idCard.length == 18){
birthday = idCard.slice(6,14);
}
birthday = birthday.replace(/(.{4})(.{2})/,"$1-$2-");
//通过正则表达式来指定输出格式为:1990-01-01
}
return birthday;
}
代码中的if判断是因为一代身份证是15位,二代身份证是18位。但是现在第一代身份证已经失效了,所以不考虑也是可以的
2.根据身份证号码获取性别
/**
* @param idCard
*/
function getSex(idCard) {
var sexStr = '';
if (parseInt(idCard.slice(-2, -1)) % 2 == 1) {
sexStr = 'man';
}
else {
sexStr = 'woman';
}
return sexStr;
}
性别是根据身份证的倒数第二位来判断的,奇数为男生,偶数为女生
顺便说明:
字符串截取不要使用substr,因为ECMAscript没有对该方法进行标准化,因此反对使用它