前些日子无聊,脑里突然想到一个问题——在完成实名制的时候,当我输入一个编造的身份证号时,为什么会被识别出来是编造的嘞?
然后…我去搜索了一番,发现原来身份证号的最后一位并不是随机生成的,而是一个根据前17位的数字计算出来的校验码——也就是说,只要前17位号码已知,那么最后一个号码就可以通过复杂公式的计算得出。

于是我“处心积虑”,用JS写出了计算身份证最后一位计算的代码:
HTML部分:

<div id='box'><h3>身份证号码末位屌炸天计算器</h3><input type='text' id='num' placeholder='请输入身份证号前17位'><input type='button' id='btn' value='计算'><input type='text' id='result' disabled><br/><span class='s1'>(本页面与国家人口信息数据信息中心联网,请勿盗用!违法必揪出来乱棍打死!)</span><br/><span class='s2'>Design By 迷人小阿锴</span>
</div>

CSS部分:

    <style>html{font-size:13.3333vw;}#box{width:5.5rem;height:3rem;margin:2rem auto;border:.02rem solid black;text-align:center;border-radius:.1rem;}h3{font:.3rem/.34rem '楷体';font-weight:bold;}#num{width:2.8rem;height:.38rem;border:.01rem solid black;border-radius:.1rem;text-align:center;font:.2rem/1 'Comic Sans MS';}#btn{width:.8rem;height:.41rem;border:.01rem solid black;border-radius:.1rem;background:white;margin-left:.3rem;font:.2rem/1 '楷体';}#btn:hover{cursor:pointer;background:black;color:white;transition:.3s;;}#result{width:3.9rem;height:.38rem;border:.01rem solid black;margin-top:.04rem;border-radius:.1rem;text-align:center;font:.2rem/1 'Comic Sans MS'}.s1{font:.1rem/1 '黑体';color:red;}.s2{font:.1rem/1 '黑体';color:blue;}</style>

JS部分:

<script>var onum=document.getElementById('num');var obtn=document.getElementById('btn');var orst=document.getElementById('result');window.onload=function(){onum.value="";orst.value="";}obtn.onclick=function(){var ipt=onum.value;var reg=/^[0-9]{17}$/gif(reg.test(ipt)){var str=ipt+'0';//创建身份证号码字符串var sum=0;      //声明单位加权乘积和for(var i=0;i<str.length-1;i++){     //遍历每一位数字Aivar n=18-i;var Ai=str.charAt(i);var Wi=Math.pow(2,n-1)%11;  //位置加权公式Wi=2^(i-1)(mod11)调取每位的Wivar k=Ai*Wi;sum+=k;}var y=sum%11;       //利用Y=mod(S,11)取余公式计算校验明码var x=0;        //声明校验暗码xswitch(y){case 0:x=1;break;case 1:x=0;break;case 2:x='X';break;case 3:x=9;break;case 4:x=8;break;case 5:x=7;break;case 6:x=6;break;case 7:x=5;break;case 8:x=4;break;case 9:x=3;break;case 10:x=2;break;}orst.value=ipt+x;}else{alert('输入错误,请重新输入!')}}
</script>

成就感十足!!

利用JS函数制作身份证号末位检测器相关推荐

  1. Greenplum函数 - 身份证号15位转18位

    前几天一直有人在问,如何在Greenplum里面实现身份证号15位到18位的转换函数,今天网上搜了一下,看了看大概的逻辑,做了个简单实现,转换逻辑不懂的,请自行百度吧,这里放出函数内容,供大家使用: ...

  2. JS函数制作倒数计时器

    JS函数制作倒数计时器 <!DOCTYPE html> <html><head><meta charset="utf-8">< ...

  3. js实现根据身份证号自动生成出生日期

    <script src="http://apps.bdimg.com/libs/jquery/1.8.3/jquery.min.js"></script> ...

  4. mysql 怎么用SQL语句将老身份证号15位补位到新身份证号18位

    一.15位的身份证和18位的身份证的区别是什么? 只有15位号码的就是第一代身份证,而18位号码的则是第二代身份证.15位的身份证和18位的身份证的区别是:第二代身份证比第一代身份证增加了出生年份中的 ...

  5. js中通过身份证号判断性别(倒数第二位奇数-男,偶数-女)

    //通过身份证号,判断性别 var str2 = '110123199810103726'; var num = str2.charAt(16); //console.log(num); if(num ...

  6. 数据库SQL函数 根据身份证号/出生年月 精确计算年龄(Oracle/MySQL)

    <问题> 根据身份证号统计年龄(18位) Oracle <思路> (1)Substr()函数在Oracle使用中表示被劫取的字符串表达式,截取字符串的内容. (2)To_dat ...

  7. 手机号 ,邮箱,固定电话js验证,身份证号(正则表达式)

    固定电话: var myreg =/^((1[0-9]{10})|(((([0-9]{3}-)?[0-9]{8})|(([0-9]{4}-)?[0-9]{7}))(-[0-9]{1,4})?))$/; ...

  8. 今天写了个自定义函数验证身份证号是否符合规则

    大家好,我是老王.今天调了半天,报了各种错误,终于写好了这个验证身份证号的自定义函数,规则可以参考身份证号码的编排规则 CREATE OR REPLACE FUNCTION LAOWANG_CHECK ...

  9. js实现完美身份证号有效性验证+身份证与姓名匹配

    /* 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列顺序从左至右依次为:六位数字地址码,八位 ...

最新文章

  1. 李开复对话Yoshua Bengio:AI技术的下一个突破
  2. 西湖大学蓝振忠:预训练语言模型的前沿发展趋势
  3. liun5实现DHCP地址分配笔记
  4. 自定义Quartz超实用工具类
  5. BZOJ 1821 [JSOI2010] Group 部落划分 Group
  6. 悬镜 linux防黑加固平台,悬镜答疑丨悬镜服务器防护CC效果如何?
  7. linux怎么运行ing,Linux命令笔记ing
  8. Python中shuffle() 函数的作用及用法
  9. android 打印线程信息
  10. Java ListResourceBundle getKeys()方法与示例
  11. php软件开发--laravel框架
  12. php 小墙 垃圾评论,关于php过滤垃圾评论
  13. LabView学习笔记(十):条件结构
  14. 如何在 Linux 上检查可用磁盘空间 [终端和 GUI]
  15. oracle笔记(2010-1-30)
  16. PTA是什么?BT-WIFI共存 转帖
  17. dom不刷新 vue 加数据后_vue 数据更新 dom不渲染
  18. HMM中的前向法(转)
  19. 用python实现词频分析+词云
  20. 雨夜赶长路,房企必经的三场“价值战事”

热门文章

  1. 反转颜色 PIL 常见报错 Python实现
  2. PMP认证考试【退、缓】考常见问题
  3. svn导致桌面图标问号
  4. JAVA利用反射模式调用实现类
  5. java vk键值_Windows Mobile 手机编程常用键值(VK)对应表
  6. 为什么safari突然字全部都变成问号如何解决
  7. 求助:RAC安装GI时报错
  8. 彩虹韩漫《物种起源》物种起源漫画全文在线阅读
  9. uniapp实现饿了吗
  10. (3)理解neutron ml2---subnet创建流程源码解析