JS编写函数实现对身份证号码最后一位的验证功能


Posted in Javascript onDecember 29, 2016

二代身份证号码为18位,其最后一位(第18位)的计算方法为:

1、 将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:

7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2

2、 将这17位数字和系数相乘的结果相加

3、 用加出来和除以11,看余数是多少?

4、 余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。每个数字所对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2。即,如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。

例如:某男性的身份证号码是34052419800101001X。验证其最后一位是否正确时,首先需要得出前17位的乘积和是189,然后用189除以11得出的结果是17+2/11,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的数字是x。所以,可以判定此身份证号码的最后一位是合格的。

编写验证方法如下:

//验证方法
function verifyCode(id){
 if(id.length !=18 )
  return false;
 /*1、从第一位到第十七位的系数分别为:
   7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2 
   将这17位数字和系数相乘的结果相加。 */ 
 var arr = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
 var sum = 0;
 for(var i=0; i<arr.length; i++){
  sum += parseInt(id.charAt(i)) * arr[i];
 }
 //2、用加出来和除以11,看余数,
 var c = sum%11;
 //3、分别对应的最后一位身份证的号码为:1-0-X-9-8-7-6-5-4-3-2
 var ch = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
 var code = ch[c];
 var last = id.charAt(17);
 last = last=='x' ? 'X': last;
 return last == code;
 }

测试该方法:

var id = "34052419800101001X";
 console.log(verifyCode(id));

以上所述是小编给大家介绍的JS编写函数实现对身份证号码最后一位的验证功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
更正确的asp冒泡排序
May 24 Javascript
Javascript typeof 用法
Dec 28 Javascript
ext 同步和异步示例代码
Sep 18 Javascript
Jquery动态改变图片IMG的src地址示例
Jun 25 Javascript
Flash图片上传组件 swfupload使用指南
Mar 14 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
Dec 02 Javascript
Vue中通过vue-router实现命名视图的问题
Apr 23 Javascript
React中Ref 的使用方法详解
Apr 28 Javascript
原生js实现随机点名
Jul 05 Javascript
typescript配置alias的详细步骤
Aug 12 Javascript
浅谈 JavaScript 沙箱Sandbox
Nov 02 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 #Javascript
JSON中key动态设置及JSON.parse和JSON.stringify()的区别
Dec 29 #Javascript
jQuery+HTML5实现弹出创意搜索框层
Dec 29 #Javascript
Bootstrap3 内联单选和多选框
Dec 29 #Javascript
Bootstrap3 多选和单选框(checkbox)
Dec 29 #Javascript
EasyUI学习之DataGird分页显示数据
Dec 29 #Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 #Javascript
You might like
Apache2中实现多网站域名绑定的实现方法
2011/06/01 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
Yii核心验证器api详解
2016/11/23 PHP
鼠标事件延时切换插件
2011/03/12 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
2015/06/10 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
Angular在一个页面中使用两个ng-app的方法
2017/02/20 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
JavaScrpt的面向对象全面解析
2017/05/09 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
python实现简单的TCP代理服务器
2014/10/08 Python
详解Python中find()方法的使用
2015/05/18 Python
python实现用于测试网站访问速率的方法
2015/05/26 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
python找出因数与质因数的方法
2019/07/25 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
详解Python中的文件操作
2021/01/14 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
入党自我评价优缺点
2014/01/25 职场文书
医院节能减排方案
2014/06/13 职场文书
小学生田径运动会广播稿
2014/09/11 职场文书
继承公证书格式
2015/01/26 职场文书
出纳试用期自我评价
2015/03/10 职场文书
捐款仪式主持词
2015/07/04 职场文书
SQL模糊查询报:ORA-00909:参数个数无效问题的解决
2021/06/21 Oracle
深入理解go缓存库freecache的使用
2022/02/15 Golang