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 相关文章推荐
JS 跳转页面延迟2种方法
Mar 29 Javascript
通过url查找a元素应用案例
Apr 29 Javascript
node.js中的favicon.ico请求问题处理
Dec 15 Javascript
jquery显示loading图片直到网页加载完成的方法
Jun 25 Javascript
封装好的javascript前端分页插件pagination
Jan 04 Javascript
jQuery验证插件validate使用方法详解
Sep 13 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
Dec 26 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
webpack4 + react 搭建多页面应用示例
Aug 03 Javascript
解决vue2 在mounted函数无法获取prop中的变量问题
Nov 15 Javascript
JavaScript 作用域scope简单汇总
Oct 23 Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 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
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
用php将任何格式视频转为flv的代码
2009/09/03 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
php实现插入排序
2015/03/29 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
vue组件学习教程
2017/09/09 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
详解javascript对数组和json数组的操作
2019/04/15 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
Python3通过chmod修改目录或文件权限的方法示例
2020/06/08 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
详解python算法常用技巧与内置库
2020/10/17 Python
Python中生成ndarray实例讲解
2021/02/22 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
《春笋》教学反思
2014/04/15 职场文书
户籍证明模板
2014/09/28 职场文书
2014年个人委托书范本
2014/10/13 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
网络研修心得体会
2016/01/08 职场文书
入党申请书怎么写?
2019/06/11 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS