實現方法如下所示
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沒有對該方法進行標准化,因此反對使用它