PHPIN.NET

 找回密码
 立即注册
查看: 605|回复: 0

[jQuery/Js/AJAX] js获取身份证信息

[复制链接]

455

主题

483

帖子

4446

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4446
发表于 2018-12-18 12:19:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
js获取身份证信息

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>js获取身份证信息</title>
  6. </head>
  7. <body>
  8. 身份证号码:<input type="text" value="" id="txtCardID" onblur="getInfo()">
  9. 年龄:<input type="text" value="" id="txtAge">
  10. 出生日期:<input type="text" value="" id="txtBirth">
  11. 性别:<input type="text" value="" id="txtSex">
  12. <input type="button" value="获取身份证信息" onclick="getInfo()">
  13. <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.slim.min.js"></script>
  14. <script>
  15.     function checkId(pId) {
  16.         //检查身份证号码
  17.         var arrVerifyCode = [1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2];
  18.         var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  19.         var Checker = [1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1];
  20.         if(pId.length != 15 && pId.length != 18) {
  21.             //return "身份证号共有15位或18位"
  22.             alert("身份证号共有15位或18位")
  23.             return
  24.         }
  25.         var Ai = pId.length == 18 ? pId.substring(0, 17) : pId.slice(0, 6) + "19" + pId.slice(6, 16);
  26.         if(!/^\d+$/.test(Ai)) {
  27.             //return "身份证除最后一位外,必须为数字!"
  28.             alert("身份证除最后一位外,必须为数字!")
  29.             return
  30.         }
  31.         var yyyy = Ai.slice(6, 10), mm = Ai.slice(10, 12) - 1, dd = Ai.slice(12, 14);
  32.         var d = new Date(yyyy, mm, dd), now = new Date();
  33.         var year = d.getFullYear(), mon = d.getMonth(), day = d.getDate();
  34.         if(year != yyyy || mon != mm || day != dd || d > now || year < 1800) {
  35.             //return "身份证输入错误!"
  36.             alert("身份证格式错误!")
  37.             return
  38.         }
  39.         for(var i = 0, ret = 0; i < 17; i++) {
  40.             ret += Ai.charAt(i) * Wi[i]
  41.         }
  42.         Ai += arrVerifyCode[ret %= 11];
  43.         return pId.length == 18 && pId != Ai ? alert("身份证格式错误!") : Ai;
  44.     }
  45.     function getInfo() {
  46.         //获取输入身份证号码
  47.         var ic = $("#txtCardID").val();
  48.         ic = checkId(ic);
  49.         if(isNaN(ic)) return;
  50.         var ic = String(ic);
  51.         //获取出生日期
  52.         var birth = ic.substring(6, 10) + "-" + ic.substring(10, 12) + "-" + ic.substring(12, 14);
  53.         $("#txtBirth").val(birth);
  54.         //获取性别
  55.         var gender = ic.slice(14, 17) % 2 ? "1" : "2"; // 1代表男性,2代表女性
  56.         gender === "1" ? $("#txtSex").val("男") : $("#txtSex").val("女")
  57.         /*var sexOption = document.getElementsByName("rabSex");
  58.          for(var i = 0; i < sexOption.length; i++) {
  59.          if(sexOption[i].value == gender) {
  60.          sexOption[i].checked = true;
  61.          break;
  62.          }
  63.          }*/
  64.         //获取年龄
  65.         var myDate = new Date();
  66.         var month = myDate.getMonth() + 1;
  67.         var day = myDate.getDate();
  68.         var age = myDate.getFullYear() - ic.substring(6, 10) - 1;
  69.         if(ic.substring(10, 12) < month || ic.substring(10, 12) == month && ic.substring(12, 14) <= day) {
  70.             age++;
  71.         }
  72.         $("#txtAge").val(age);
  73.     }
  74. </script>
  75. </body>
  76. </html>
复制代码


js获取身份证信息.html (3.02 KB, 下载次数: 44)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|PHPIN.NET ( 冀ICP备00000001号 )|网站地图

GMT+8, 2019-12-11 23:02

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表