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没有对该方法进行标准化,因此反对使用它

posted @ 2019-01-18 14:54  近距离  阅读(10928)  评论(0编辑  收藏  举报