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操作textarea方法集合封装(兼容IE,firefox)
Feb 22 Javascript
JavaScript中常用的运算符小结
Jan 18 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
js+canvas绘制矩形的方法
Jan 28 Javascript
基于javascript制作微信聊天面板
Aug 09 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
前端jquery部分很精彩
May 03 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
Feb 02 Javascript
angularjs封装$http为factory的方法
May 18 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
Jul 10 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
Sep 19 Javascript
Vue解析剪切板图片并实现发送功能
Feb 04 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
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
PHP7 list() 函数修改
2021/03/09 PHP
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
Javascript的并行运算实现代码
2010/11/19 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
轻松理解Javascript变量的相关问题
2017/01/20 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
python多进程实现进程间通信实例
2017/11/24 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
Java中会存在内存泄漏吗,请简单描述
2016/12/22 面试题
专科毕业生求职简历的自我评价
2013/10/12 职场文书
证券期货行业个人的自我评价
2013/12/26 职场文书
大四本科生的自我评价
2013/12/30 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
个人债务授权委托书
2014/10/17 职场文书
研究生个人学年总结
2015/02/14 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
掌握一个领域知识,高效学习必备方法
2019/08/08 职场文书
mysql 8.0.24版本安装配置方法图文教程
2021/05/12 MySQL
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS