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

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

 代码如下 复制代码

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
}
时间: 2024-11-16 18:49:43

Nodejs利用身份证号验证年龄,出生日期和性别的相关文章

jQuery实现从身份证号中获取出生日期和性别的方法分析_jquery

本文实例分析了jQuery实现从身份证号中获取出生日期和性别的方法.分享给大家供大家参考,具体如下: 一.前言: 今天,在做移动端的项目中,按照设计稿的要求,是可以让用户自己输入出生日期的,我还很认真的用了刚刚知道的html5表单的日期类型,本想着终于不用日期插件就可以实现用户选择自己的出生日期了,可结果老大说,把这个表单去掉,要做成从身份证号里边读取用户的出生日期.好吧,高兴了一半,结果....唉,没办法,只能按照领导的要求来做啊,于是就有了下边的从身份证号中获取出生日期和性别的代码. 二.实

在Excel中自动提取身份证号中的生日和性别

每年新入学的一年级学生,都需要向上级教育部门上报一份包含身份证号.出生年月等内容的电子表格,以备建立全省统一的电子学籍档案.数百个新生,就得输入数百行相应数据,这可不是个轻松活儿.有没有什么办法能减轻一下输入工作量.提高一下效率呢?其实,我们只需在Excel中将学生的身份证号完整地输入后,它就可以帮我们自动填好出生日期和性别. 现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位"2"代表的是性别,

比较规范的身份证号验证正则表达式

原文:比较规范的身份证号验证正则表达式 一些要求用户信息比较严格的地方比如用户注册.登录的时候都需要验证用户的身份证是否合法,而通过这些验证能大大的过滤掉很多水客,给你的系统带来非常精准的用户信息. 很多时候我们都是通过一组正则表达式来判断用户输入的身份证是否合法,那在用正则表达式判断之前,你对身份证号的组成有多少了解呢?下面来说说一个身份证号里面包含了多少的信息: 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生

做一个牛XX的身份证号验证类(支持15位和18位)

原文:做一个牛XX的身份证号验证类(支持15位和18位) #region 是否合法的中国身份证号码 protected bool IsChineseID() { if (str.Length == 15) str = CidUpdate(str); if (str.Length == 18) { string strResult = CheckCidInfo(str); if (strResult == "非法地区" || strResult == "非法生日" |

js实现根据身份证号自动生成出生日期_javascript技巧

本文实例为大家讲述了js实现根据身份证号自动生成出生日期的代码,分享给大家供大家参考,具体内容如下 运行效果图: <!doctype> <html> <head> <script type="text/javascript"> function dealCard(){ var birthday=getBirthday(); switch(birthday){ case 0:alert("Sorry,the program run

巧用excel分列从身份证号里提取出生日期

在进行员工信息统计的时候,往往用到姓名.性别.身份证号和出生日期等不同字段.这些信息单个输入工作量将会很大,如果输入了身份证号,我们就没有必要再出生日期了,出生日期可以从身份证号码里面提取,下面是具体的实现方法. 由于身份证号可能有15位和18位两种情况,首先需要让身份证号按照15位和18位进行区分.在Excel软件没有提供按照字数进行排序的命令,我们可以借助len()函数来实现.假如在A列中记录了员工的身份证号码,在其他列,比如D1单元格中输入"=len(A1)"函数,然后拖动填充句

如何在Excel中提身份证号生日和性别

  每年新入学的一年级学生,都需要向上级教育部门上报一份包含身份证号.出生年月等内容的电子表格,以备建立全省统一的电子学籍档案.数百个新生,就得输入数百行相应数据,这可不是个轻松活儿.有没有什么办法能减轻一下输入工作量.提高一下效率呢?其实,我们只需在Excel2003中将学生的身份证号完整地输入后,它就可以帮我们自动填好出生日期和性别. 现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位"2"代

如何利用JS通过身份证号获取当事人的生日、年龄、性别_javascript技巧

身份证可以识别一个人的信息,下面就介绍一下如何利用js通过身份证号码获取当事人的年龄和性别. <script> function IdCard(UUserCard,num){ if(num==1){ //获取出生日期 birth=UUserCard.substring(6, 10) + "-" + UUserCard.substring(10, 12) + "-" + UUserCard.substring(12, 14); return birth;

javascript验证身份证号

 我们在做互联网网站时,注册个人资料时,经常要用到身份证号,我们需要对身份证进验证,不然别人随便输个号码就通过,让你感觉这个网站做得很shit. 身份证号是有规则的. 结构和形式 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成.排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码. 2.地址码 表示编码对象常住户口所在县(市.旗.区)的行政区划代码,按GB/T2260的规定执行. 3.出生日期码 表示编码对象出生的年.月.日,按