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 相关文章推荐
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
Jun 02 Javascript
javascript IFrame 强制刷新代码
Jul 23 Javascript
Jquery给基本控件的取值、赋值示例
May 23 Javascript
JS实现在网页中弹出一个输入框的方法
Mar 03 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
Aug 25 Javascript
JavaScript iframe数据共享接口实现方法
Jan 06 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
Oct 09 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
Oct 26 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
Nov 22 Javascript
vue.js的vue-cli脚手架中使用百度地图API的实例
Jan 21 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
Aug 11 Javascript
vue 获取url里参数的两种方法小结
Nov 12 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静态调用非静态方法的应用分析
2013/05/02 PHP
PHP多例模式介绍
2013/06/24 PHP
PHP+APACHE实现网址伪静态
2015/02/22 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
在phpstudy集成环境下的nginx服务器下配置url重写
2019/12/02 PHP
js类 from qq
2006/11/13 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
jquery获取复选框被选中的值
2014/04/10 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
理解javascript封装
2016/02/23 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
2016/04/29 Javascript
JS上传图片预览插件制作(兼容到IE6)
2016/08/07 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
vue-froala-wysiwyg 富文本编辑器功能
2019/09/19 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
python用for循环求和的方法总结
2019/07/08 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
Shopee印度尼西亚:东南亚与台湾市场最大电商平台
2018/06/17 全球购物
人大代表选举标语
2014/10/07 职场文书
七年级作文之秋游
2019/10/21 职场文书
使用numpy实现矩阵的翻转(flip)与旋转
2021/06/03 Python
Debian11 Xfce终端光标的颜色怎么设置?
2022/08/14 数码科技