当前位置: 首页 > news >正文

JS 根据身份证号获取年龄、性别、出生日期

先说一代身份证和二代身份证的区别:

1.编号位数不同,第一代身份证为15位号码,第二代证是18位号码

2.编码规则不同,第一代身份证在前6位号码后没有完整出生年份,而二代的有完整的出生年份,一代身份证将年份前二位省略。在最后一位数上,二代证加了校验码。例如:

一代证:331303(县区代码)870808(出生年月)141(尾数)

二代证: 331303(县区代码)19870808 (出生年月)1412(尾数加校验码)

// 根据身份证号码获取性别getSexByIdCard(IdCard) {// 一代身份证号码的第15位是性别的判断,奇数表示男性,偶数表示女性;// 二代身份证号码的第17位是性别的判断,奇数表示男性,偶数表示女性。if (parseInt(IdCard.substr(16, 1)) % 2 === 0 && IdCard.length === 18) {return 2;} else if (parseInt(IdCard.substr(14, 1)) % 2 === 0 && IdCard.length === 15) {return 2;} else {return 1;}},
// 根据身份证号码获取年龄getAge(birthday) {const today = new Date();const birthDate = new Date(birthday);let age = '';if (today.getFullYear() > birthDate.getFullYear()) {age = today.getFullYear() - birthDate.getFullYear();const monthDiff = today.getMonth() - birthDate.getMonth();if (monthDiff < 0 || (monthDiff === 0 && today.getDate() < birthDate.getDate())) {age--;}}return age;},
// 根据身份证获取出生日期 YYYY-MMgetBirthday(idCard) {let birthday = '';if (idCard.length === 15) {birthday = '19' + idCard.substring(6, 10);} else if (idCard.length === 18) {birthday = idCard.substring(6, 12);}return birthday.replace(/(.{4})(.{2})/, '$1-$2')},// 获取出生日期  YYYY-MM-DDgetBirthday(idCard) {let birthday = '';if (idCard.length === 15) {birthday = '19' + idCard.substring(6, 12);} else if (idCard.length === 18) {birthday = idCard.substring(6, 14);}return birthday.replace(/(.{4})(.{2})(.{2})/, '$1-$2-$3')},

http://www.lryc.cn/news/99577.html

相关文章:

  • Python+Mongo+LSTM(GTP生成)
  • 关于idea如何成功运行web项目
  • python读取json文件
  • 迁移学习、微调、计算机视觉理论(第十一次组会ppt)
  • 特殊矩阵的压缩存储
  • 【网络原理】 (1) (应用层 传输层 UDP协议 TCP协议 TCP协议段格式 TCP内部工作机制 确认应答 超时重传 连接管理)
  • 【SQL语句】
  • 自动驾驶和机器人学习和总结专栏汇总
  • 【C++初阶】C++基础(下)——引用、内联函数、auto关键字、基于范围的for循环、指针空值nullptr
  • OSI 7层模型 TCPIP四层模型
  • iOS-持久化
  • PC音频框架学习
  • 机器学习:提取问题答案
  • 【Ansible】
  • 分布式版本控制系统git详解
  • 如何使用Python进行数据挖掘?
  • 若依-前台无法正常启动,npm run dev失败
  • Spring之IoC源码分析及设计思想(一)——BeanFactory
  • ⛳ 面向对象面试题
  • Java中使用Gson操作json数据
  • Verilog语法学习——LV10_使用函数实现数据大小端转换
  • Leetcode-每日一题【剑指 Offer II 009. 乘积小于 K 的子数组】
  • html/javascript-表格的创建和使用
  • [点微]同城原生微信小程序 小程序原生版 1.0.7(tom_xiaofenlei)
  • JDBC Some Templates
  • dubbo启动指定ip不使用docker虚拟网络ip
  • Bobo String Construction
  • 基于java在线个人网站源码设计与实现
  • Ubuntu18.04下编译qgc源码
  • Ros2_windows_install的学习笔记