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实现进度条的方法
Feb 13 Javascript
TypeScript具有的几个不同特质
Apr 07 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
Dec 02 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
微信小程序中使用javascript 回调函数
May 11 Javascript
Angular通过angular-cli来搭建web前端项目的方法
Jul 27 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
Dec 13 Javascript
element-ui table span-method(行合并)的实现代码
Dec 20 Javascript
浅谈webpack devtool里的7种SourceMap模式
Jan 14 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 Javascript
如何基于原生javaScript生成带图片的二维码
Nov 21 Javascript
手写Spirit防抖函数underscore和节流函数lodash
Mar 22 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树形菜单代码
2014/11/19 PHP
MacOS 安装 PHP的图片裁剪扩展Tclip
2015/03/25 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
php实现word转html的方法
2016/01/22 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
PHP attributes()函数讲解
2019/02/03 PHP
ThinkPhP+Apache+PHPstorm整合框架流程图解
2020/11/23 PHP
ExtJS TabPanel beforeremove beforeclose使用说明
2010/03/31 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
ES6实现图片切换特效代码
2020/01/14 Javascript
Python获取任意xml节点值的方法
2015/05/05 Python
Python中splitlines()方法的使用简介
2015/05/20 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
numpy.transpose对三维数组的转置方法
2018/04/17 Python
django反向解析和正向解析的方式
2018/06/05 Python
python爱心表白 每天都是浪漫七夕!
2018/08/18 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
Linux上比较文件的命令都有哪些
2013/09/28 面试题
造价工程师个人求职信
2013/09/21 职场文书
会计专业毕业生自我鉴定
2013/10/29 职场文书
财务工作者先进事迹材料
2014/01/17 职场文书
中学生差生评语
2014/01/30 职场文书
文明市民先进事迹
2014/05/15 职场文书
高中团支书竞选稿
2015/11/21 职场文书
自荐信范文
2019/05/20 职场文书
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS