/**
*
* @param idCard
* @returns
*/
function checkId(idCard) {
// 检查身份证号码
var arrVerifyCode = [ 1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2 ];
var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];
var Checker = [ 1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1 ];
if (idCard.length != 15 && idCard.length != 18)
return "身份证号共有15位或18位";
var Ai = idCard.length == 18 ? idCard.substring(0, 17) : idCard.slice(0, 6) + "19" + idCard.slice(6, 16);
if (!/^\d+$/.test(Ai))
return "身份证除最后一位外,必须为数字!";
var yyyy = Ai.slice(6, 10), mm = Ai.slice(10, 12) - 1, dd = Ai.slice(12, 14);
var d = new Date(yyyy, mm, dd), now = new Date();
var year = d.getFullYear(), mon = d.getMonth(), day = d.getDate();
if (year != yyyy || mon != mm || day != dd || d > now || year < 1800)
return "身份证输入错误!";
for (var i = 0, ret = 0; i < 17; i++)
ret += Ai.charAt(i) * Wi[i];
Ai += arrVerifyCode[ret %= 11];
return idCard.length == 18 && idCard != Ai ? false : true;
};
/**
* 根据身份证获取性别
*
* @param idCard
* @returns
*/
function getSex(idCard) {
var gender = idCard.slice(14, 17) % 2 ? "MALE" : "FEMALE";
return gender;
};
/**
* 根据身份证获取姓年龄
*
* @param idCard
* @returns
*/
function getAge(idCard) {
var myDate = new Date();
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
var age = myDate.getFullYear() - idCard.substring(6, 10) - 1;
if (idCard.substring(10, 12) < month || idCard.substring(10, 12) == month && idCard.substring(12, 14) <= day) {
age++;
}
return age;
};
/**
* 根据身份证获取姓生日
*
* @param idCard
* @returns
*/
function getBirthDay(idCard) {
var ic = String(idCard);
// 获取出生日期
var birthDay = idCard.substring(6, 10) + "-" + idCard.substring(10, 12) + "-" + idCard.substring(12, 14);
return birthDay;
};