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 相关文章推荐
jQuery自带的一些常用方法总结
Sep 03 Javascript
node.js中使用socket.io制作命名空间
Dec 15 Javascript
JavaScript模拟push
Mar 06 Javascript
Reactjs实现通用分页组件的实例代码
Jan 19 Javascript
node.js平台下的mysql数据库配置及连接
Mar 31 Javascript
最常用的jQuery表单验证(简单)
May 23 jQuery
从vue源码解析Vue.set()和this.$set()
Aug 30 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
Nov 08 Javascript
webpack DllPlugin xxx is not defined解决办法
Dec 13 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
Javascript实现打鼓效果
Jan 29 Javascript
JS实现刷新网页后之前浏览位置保持不变示例详解
Aug 14 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 404错误页面实现代码
2009/06/22 PHP
php中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
禁止空格提交表单的js代码
2013/11/17 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
jquery实现动态画圆
2014/12/04 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
JavaScript 中的 this 简单规则
2017/09/19 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
浅谈编码,解码,乱码的问题
2016/12/30 Python
Python字符串拼接六种方法介绍
2017/12/18 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python自动点赞功能的实现思路
2020/02/26 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
2020/08/22 Python
HTML5 Canvas标签使用收录
2009/07/07 HTML / CSS
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
餐厅经理岗位职责范本
2014/02/17 职场文书
安全口号大全
2014/06/21 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
前台接待员岗位职责
2015/04/15 职场文书
爱国教育主题班会
2015/08/14 职场文书
Win11软件图标固定到任务栏
2022/04/19 数码科技
Java 多线程协作作业之信号同步
2022/05/11 Java/Android
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript
mysql函数之截取字符串的实现
2022/08/14 MySQL