项目中有遇到需要根据用户输入的身份证号码自动获取出身日期及性别。在网上搜了一些方法在项目中使用。现整理记录一下,方便后面使用。
card.js代码,用于判断身份证号格式是否正确(主要是长度和出身日期):

//判断身份证格式
function isIdCardNo(num) {var factorArr = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1);var parityBit = new Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2");var varArray = new Array();var lngProduct = 0;var intCheckDigit;var intStrLen = num.length;var idNumber = num;// initializeif ((intStrLen != 15) && (intStrLen != 18)) {return false;}// check and set valuefor (var i = 0; i < intStrLen; i++) {varArray[i] = idNumber.charAt(i);if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) {return false;} else if (i < 17) {varArray[i] = varArray[i] * factorArr[i];}}//判断18位长度if (intStrLen == 18) {//check datevar date8 = idNumber.substring(6, 14);if (isDate8(date8) == false) {return false;}// calculate the sum of the productsfor (var i = 0; i < 17; i++) {lngProduct = lngProduct + varArray[i];}// calculate the check digitintCheckDigit = parityBit[lngProduct % 11];// check last digitif (varArray[17] != intCheckDigit) {return false;}//判断18位长度}else {//check datevar date6 = idNumber.substring(6, 12);if (isDate6(date6) == false) {return false;}}return true;
}//15位长度判断生日
function isDate6(sDate) {if (!/^[0-9]{6}$/.test(sDate)) {return false;}var year, month, day;year = sDate.substring(0, 4);month = sDate.substring(4, 6);if (year < 1700 || year > 2500) return false;if (month < 1 || month > 12) return false;return true;
}//18位长度判断生日
function isDate8(sDate) {if (!/^[0-9]{8}$/.test(sDate)) {return false;}var year, month, day;year = sDate.substring(0, 4);month = sDate.substring(4, 6);day = sDate.substring(6, 8);var iaMonthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]if (year < 1700 || year > 2500) return false;if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1] = 29;if (month < 1 || month > 12) return false;if (day < 1 || day > iaMonthDays[month - 1]) return false;return true;
}

js中的根据日期获取生日和性别的方法:

function getSexAndbirthday (IdCard) {var birthday = "";var sexNo = "";var sex = "";if(IdCard.length === 15) {birthday =  '19'+IdCard.substr(6,2)+'-'+IdCard.substr(8,2)+'-'+IdCard.substr(10,2);sexNo = IdCard.substring(14,15)} else if (IdCard.length === 18) {birthday =  IdCard.substr(6,4)+'-'+IdCard.substr(10,2)+'-'+IdCard.substr(12,2);sexNo = IdCard.substring(16,17)}if (sexNo%2==0){sex = 'FEMALE';}else {sex = 'MALE';}return {sex: sex, birthday: birthday};}

jquery通过身份证号获取性别和生日相关推荐

  1. 根据身份证号获取性别和生日

    function tools_calcIdentiyInfo(str) { let sex = parseInt(str.substr(16, 1)) % 2 == 1 ? '男' : '女'; le ...

  2. js脚本根据身份证号获取性别、年龄、家庭地址、生日

    做项目测试时需要根据身份证号获取其信息,也不想调接口,就自己在本地通过收集资料整合了一个 当身份证号的焦点失去选中后,根据身份证号获取性别.年龄.家庭地址.生日 直接上代码: index.html & ...

  3. 根据身份证号获取性别

    1. public class Test {/** * 修补15位居民身份证号码为18位,不校验身份证有效性 * * @param personIDCode * 十五位身份证号码 * @return ...

  4. java代码实现根据身份证号获取性别,年龄

    根据身份证号获取性别,年龄 // 根据身份编号获取性别public static String getGenderByIdCard(String idCard) {String sGender = & ...

  5. 前端——使用JavaScript(jQuery)通过身份证号获取籍贯、生日、年龄、性别

    注:本文所用的身份证号码是18位号码,15位的号码类似 tips: 公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成. 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位 ...

  6. Excel表格中根据身份证号获取出生日期、生日、年龄、性别、工龄、退休龄

    ( 1 ) 15 位的身份证号码: 1~6 位为地区代码, 7~8 位为出生年份 (2 位 ) , 9~10 位为出生月份, 11~12 位为出生日期,第 13~15 位为顺序号,并能够判断性别,奇数 ...

  7. 根据身份证号判断性别、生日(excel表格,公式)

    18位的看倒数第二位,奇男偶女: 15位的看倒数第一位,奇男偶女. 假如:身份证所在的列为C2 首先要判断该身份证的长度,在excel中使用len函数来获取len(C2) 如果是18位的就取第17位, ...

  8. jQuery根据身份证号判断性别(18位)

    var Idnumber=jQuery("#"+m_IDnumber_id).val(); var sexNo = Idnumber.substring(16,17);// var ...

  9. vue 根据身份证号获取性别,年龄,出生年月

    获取性别,年龄,出生年月 getInfo(idCard) {let sex = null;let birth = null;let myDate = new Date();let month = my ...

最新文章

  1. 百度前端技术学院Task20 笔记
  2. 前端页面预览word_jquery.media.js实现前端页面预览
  3. CPU为什么不做成圆的而是方的?
  4. CSDN Blog升级通告
  5. 【论文阅读笔记】文本相似度分析方面
  6. telnet 命令参数及其应用方式
  7. [ERROR] [MY-012576] [InnoDB] Unable to create temporary file; errno: 30
  8. 加州房价预测数据预处理
  9. VersaBank开发“数字保险箱”区块链服务
  10. word中无法识别到e-study插件
  11. vb.net 图片水平翻转_犁耕作业效果差?试试大马力拖拉机液压翻转犁正确调整与使用方法...
  12. 【每天学点管理】——RACI责任制(快速解决责任分配问题)
  13. 关于STM32 GPIO配置基础概括
  14. 地下水运动方程的解析解(一维潜水)
  15. 软件工程与计算II-20-软件交付
  16. 修道士野人问题的python求解
  17. Win11桌面图标的小盾牌怎么去掉?
  18. java(JDK)环境安装步骤以及环境变量配置
  19. 淘宝开放平台阿里奇门对接联调教程详细操作
  20. 收集oracle统计信息

热门文章

  1. goconvey调研及学习
  2. Loongarch 软件移植
  3. v2ray.com/core/proxy/vmess/outbound: failed to find an available destination
  4. Nightingale夜莺初识
  5. 差分电荷密度怎么画_【求助】如何做电荷密度图和差分电荷密度图? - 量子化学 - 小木虫 - 学术 科研 互动社区...
  6. TIMO 后台管理系统 v2.0.1 发布,加入 jwt 身份验证组件,基于 Spring Boot
  7. 离散数学当,仅当,当且仅当
  8. Python基础学习教程:如何用Python来写pm2.5空气质量查询程序
  9. 基于TCP协议的文件上传与下载
  10. android人名排序,android – 如何按搜索栏中的名字和姓氏排序 – Sqlite