赞
踩
/*
* @param {string} idcard - 身份证号
* @returns {object} object.birth - 生日 object.gender - 性别 object.age - 年龄
*/
function getIdCardInfo(idcard) {
function
getIdCardInfo(idcard) {
var isIdcard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
var
isIdcard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
var birth = '';
birth =
''
;
var birthYear = '';
birthYear =
var birthMonth = '';
birthMonth =
var birthDay = '';
birthDay =
var gender = '';
gender =
var age = '';
age =
if (isIdcard.test(idcard)) {
if
(isIdcard.test(idcard)) {
// 获取当前日期
var curDate = new Date();
curDate =
new
Date();
var curMonth = curDate.getMonth() + 1;
curMonth = curDate.getMonth() + 1;
var curDay = curDate.getDate();
curDay = curDate.getDate();
if (idcard.length === 18) {// 18位身份证
(idcard.length === 18) {
// 18位身份证
birthYear = idcard.substring(6, 10);
birthMonth = idcard.substring(10, 12);
birthDay = idcard.substring(12, 14);
gender = idcard.substring(16, 17);
} else if (idcard.length === 15) {// 15位身份证
}
else
(idcard.length === 15) {
// 15位身份证
birthYear = "19" + idcard.substring(6, 8);
"19"
+ idcard.substring(6, 8);
birthMonth = idcard.substring(8, 10);
birthDay = idcard.substring(10, 12);
gender = idcard.substring(14, 15);
birth = birthYear + "-" + birthMonth + "-" + birthDay;
birth = birthYear +
"-"
+ birthMonth +
+ birthDay;
gender = gender % 2 ? "男" : "女";// 1代表男性,2代表女性
gender = gender % 2 ?
"男"
:
"女"
// 1代表男性,2代表女性
age = curDate.getFullYear() - birthYear - 1;
if (idcard.substring(10, 12) < curMonth || idcard.substring(10, 12) == curMonth && idcard.substring(12, 14) <= curDay) {
(idcard.substring(10, 12) < curMonth || idcard.substring(10, 12) == curMonth && idcard.substring(12, 14) <= curDay) {
age++;
return {
return
{
birth: birth,
gender: gender,
age: age,
} else {
birth: '',
birth:
,
gender: '',
gender:
age: '',
age: