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 相关文章推荐
DHTML 中的绝对定位
Nov 26 Javascript
将文本输入框内容加入表中的js代码
Aug 18 Javascript
js控制table合并具体实现
Feb 20 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
Jun 05 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
Sep 22 Javascript
JS实现黑客帝国文字下落效果
Sep 01 Javascript
使用JQuery实现的分页插件分享
Nov 05 Javascript
js将滚动条滚动到指定位置的简单实现方法
Jun 25 Javascript
bootstrap模态框远程示例代码分享
May 22 Javascript
微信小程序实现点击按钮移动view标签的位置功能示例【附demo源码下载】
Dec 06 Javascript
详解关于vue2.0工程发布上线操作步骤
Sep 27 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
Sep 10 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
自己整理的一个javascript日期处理函数
2010/10/16 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
vue+vux实现移动端文件上传样式
2017/07/28 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
python使用htmllib分析网页内容的方法
2015/05/08 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
2018/05/24 Python
Python实现多进程的四种方式
2019/02/22 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
浅谈HTML5 &amp; CSS3的新交互特性
2016/07/19 HTML / CSS
总经理助理岗位职责
2013/11/08 职场文书
婚纱摄影师求职信
2014/03/07 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
新教师个人工作总结
2015/02/06 职场文书
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript