一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Nodejs利用身份证号验证年龄,出生日期和性别

时间:2016-08-20 编辑:简简单单 来源:一聚教程网

想要知道自己的年龄,出生日期和性别,或者是别人的,给我个身份证号,我就可以知道,看下面代码。

 代码如下 复制代码

static validateIdNumberToAgeYear(str){
  let date = new Date();
  let currentYear = date.getFullYear();
  let currentMonth = date.getMonth() + 1;
  let currentDate = date.getDate();
 
  let idxSexStart = str.length == 18 ? 16 : 14;
  let birthYearSpan = str.length == 18 ? 4 : 2;

  let year;
  let month;
  let day;
  let sex;
  let birthday;
  let age;

  //性别
  let idxSex = 1 - str.substr(idxSexStart, 1) % 2; 
  sex = idxSex == '1' ? '女' : '男'; 
  //生日
  year = (birthYearSpan == 2 ? '19' : '') + str.substr(6, birthYearSpan); 
  month = str.substr(6 + birthYearSpan, 2); 
  day = str.substr(8 + birthYearSpan, 2); 
  birthday = year + '-' + month + '-' + day; 
  //年龄
  let monthFloor = (currentMonth < parseInt(month,10) || (currentMonth == parseInt(month,10) && currentDate < parseInt(day,10))) ? 1 : 0;
  age = currentYear - parseInt(year,10) - monthFloor; 

  // console.log("我的出生日期是"+year+"年"+month+"月"+day+"日"+",今年"+age+"岁了"+",性别是"+sex);

  if(age >= 18){
    return true; 
  }
 
  return false;
}

我这里只是做了一个年龄的判断。

当然也可以使用纯js实现

 

 代码如下 复制代码
function discriCard(){
//获取输入身份证号码
var UUserCard = "";
//获取出生日期
UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14);
//获取性别
if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) {
alert("男");
//是男则执行代码 ...
} else {
alert("女");
//是女则执行代码 ...
}
//获取年龄
var myDate = new Date();
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1;
if (UUserCard.substring(10, 12) < month || UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day) {
age++;
}
alert(age);
//年龄 age
}

热门栏目