JavaScript 身份证号有效验证详解及实例代码


Posted in Javascript onOctober 20, 2016

最近需要对身份证合法性进行验证,实名验证是不指望了,不过原来的验证规则太过简单,只是简单的验证了身份证长度,现在业务需要加强下身份证验证规则,网上找到了不少资料,不过都不合偶的心意,无奈只好直接写一个,代码还是用自己的舒服哈

JavaScript验证身份证号

<%@ page language="java" contentType="text/html; charset=GB18030"
  pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>身份证验证</title>
<script type="text/javascript"> 
var arr2=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
var arr3=[1,0,'X',9,8,7,6,5,4,3,2];
function checkid(){
  var t=document.getElementById("gettext").value;
  if(t.length==18){
    var arr=t.split('');
    var s;
    var reg = /^\d+$/;
    var pd=0;
    for(i=0;i<17;i++){
      if(reg.test(arr[i])){
        s=true;
        pd=arr[i]*arr2[i]+pd;
      }else{
        s=false;
        break;
      }
    }
    if(s=true){
      var r=pd%11;
      if(arr[17]==arr3[r]){
        document.getElementById("show").innerHTML="身份证号合法  尾号为:"+arr3[r];
      }else{
        document.getElementById("show").innerHTML="非合法身份证号";
      }
    }
    
  }else{
    document.getElementById("show").innerHTML="非合法身份证号";
  }
}
</script>
</head>
<body >
<input id="gettext" type="text" size="30" onkeyup="checkid()">
<p id="show"></p><br>
</body>
</html>

根据网上的身份证的计算公式写的一个验证身份证号的js

第一步:将身份证号码的第1位数字与7相乘;将身份证号码的第2位数字与9相乘;将身份证号码的第3位数字与10相乘;将身份证号码的第4位数字与5相乘;将身份证号码的第5位数字与8相乘;将身份证号码的第6位数字与4相乘;将身份证号码的第7位数字与2相乘;将身份证号码的第8位数字与1相乘;将身份证号码的第9位数字与6相乘;将身份证号码的第10位数字与3相乘;将身份证号码的第11位数字与7相乘;将身份证号码的第12位数字与9相乘;将身份证号码的第13位数字与10相乘;将身份证号码的第14位数字与5相乘;将身份证号码的第15位数字与8相乘;将身份证号码的第16位数字与4相乘;将身份证号码的第17位数字与2相乘。

第二步:将第一步身份证号码1~17位相乘的结果求和,全部加起来。

第三步:用第二步计算出来的结果除以11,这样就会出现余数为0,余数为1,余数为2,余数为3,余数为4,余数为5,余数为6,余数为7,余数为8,余数为9,余数为10共11种可能性。

第四步:如果余数为0,那对应的最后一位身份证的号码为1;如果余数为1,那对应的最后一位身份证的号码为0;如果余数为2,那对应的最后一位身份证的号码为X;如果余数为3,那对应的最后一位身份证的号码为9;如果余数为4,那对应的最后一位身份证的号码为8;如果余数为5,那对应的最后一位身份证的号码为7;如果余数为6,那对应的最后一位身份证的号码为6;如果余数为7,那对应的最后一位身份证的号码为5;如果余数为8,那对应的最后一位身份证的号码为4;如果余数为9,那对应的最后一位身份证的号码为3;如果余数为10,那对应的最后一位身份证的号码为2。

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JS实现仿百度输入框自动匹配功能的示例代码
Feb 19 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
Jun 20 Javascript
纯jquery实现模仿淘宝购物车结算
Aug 20 Javascript
AngularJS基础 ng-mousemove 指令简单示例
Aug 02 Javascript
浅谈javascript中的事件冒泡和事件捕获
Dec 28 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
Smartour 让网页导览变得更简单(推荐)
Jul 19 Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 Javascript
vue项目中自定义video视频控制条的实现代码
Apr 26 Javascript
Js图片点击切换轮播实现代码
Jul 27 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
Aug 05 Javascript
AngularJS  双向数据绑定详解简单实例
Oct 20 #Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 #Javascript
canvas实现手机端用来上传用户头像的代码
Oct 20 #Javascript
JS调用某段SQL语句的方法
Oct 20 #Javascript
Angularjs 设置全局变量的方法总结
Oct 20 #Javascript
seajs学习之模块的依赖加载及模块API的导出
Oct 20 #Javascript
Angular表单验证实例详解
Oct 20 #Javascript
You might like
二十行语句实现从Excel到mysql的转化
2006/10/09 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
ThinkPHP5 的简单搭建和使用详解
2018/11/15 PHP
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
javascript打印大全(打印页面设置/打印预览代码)
2013/03/29 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
JS调用某段SQL语句的方法
2016/10/20 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
2016/11/09 Javascript
Nodejs实现多房间简易聊天室功能
2017/06/20 NodeJs
Webpack优化配置缩小文件搜索范围
2017/12/25 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
vue项目配置使用flow类型检查的步骤
2020/03/18 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
ant-design-vue 时间选择器赋值默认时间的操作
2020/10/27 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
Python打印scrapy蜘蛛抓取树结构的方法
2015/04/08 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
关于html字符串正则判断和匹配的具体使用
2019/12/12 HTML / CSS
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
马歇尔耳机官网:Marshall Headphones
2020/02/04 全球购物
教师申诉制度
2014/01/29 职场文书
学校党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
入队仪式主持词
2015/07/04 职场文书
化工生产实习心得体会
2016/01/22 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android