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 相关文章推荐
JsEasy简介 JsEasy是什么?与下载
Mar 07 Javascript
用javascript删除当前行,添加行(示例代码)
Nov 25 Javascript
JavaScript及jquey实现多个数组的合并操作
Sep 06 Javascript
PHP PDO操作总结
Nov 17 Javascript
JavaScript实现网页对象拖放功能的方法
Apr 15 Javascript
javascript实现别踩白块儿小游戏程序
Nov 22 Javascript
JS简单生成两个数字之间随机数的方法
Aug 03 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
Jun 13 Javascript
vue的安装及element组件的安装方法
Mar 09 Javascript
webpack优化之代码分割与公共代码提取详解
Nov 22 Javascript
vue3.0 自适应不同分辨率电脑的操作
Feb 06 Vue.js
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
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
php封装的smartyBC类完整实例
2016/10/19 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
用 JSON 处理缓存
2007/04/27 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
jquery事件重复绑定的快速解决方法
2014/01/03 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
JS操作input标签属性checkbox全选的实现代码
2017/03/02 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
2017/09/11 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python中的下划线详解
2015/06/24 Python
Python教程之全局变量用法
2016/06/27 Python
Windows系统下多版本pip的共存问题详解
2017/10/10 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
在linux下实现 python 监控usb设备信号
2019/07/03 Python
Python代码太长换行的实现
2019/07/05 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
Python多线程模块Threading用法示例小结
2019/11/09 Python
如何使用localstorage代替cookie实现跨域共享数据问题
2018/04/18 HTML / CSS
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
存储过程的优缺点是什么
2015/01/10 面试题
主要的Ajax框架都有什么
2013/11/14 面试题
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
村党组织公开承诺书
2015/04/30 职场文书
教师节老师寄语
2015/05/28 职场文书
交通安全教育心得体会
2016/01/15 职场文书
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript