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 SQL防注入的方法
Dec 25 Javascript
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
Apr 13 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
用js写了一个类似php的print_r输出换行功能
Feb 18 Javascript
js中reverse函数的用法详解
Dec 26 Javascript
AngularJS内置指令
Feb 04 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
Jan 23 Javascript
canvas实现图像截取功能
Feb 06 Javascript
详细分析jsonp的原理和实现方式
Nov 20 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
May 18 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
Nov 07 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
Mar 10 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
jQuery入门知识简介
2010/03/04 Javascript
jQuery each()小议
2010/03/18 Javascript
jquery ajax jsonp跨域调用实例代码
2013/12/11 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
深入学习JavaScript中的Rest参数和参数默认值
2015/07/28 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
Bootstrap自动适应PC、平板、手机的Bootstrap栅格系统
2016/05/27 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
解决同一页面中两个iframe互相调用jquery,js函数的方法
2016/12/12 Javascript
JavaScript中数组Array方法详解
2017/02/27 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
vue移动端城市三级联动组件使用详解
2019/07/26 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
Python下载网络小说实例代码
2018/02/03 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
python三引号输出方法
2019/02/27 Python
python基于property()函数定义属性
2020/01/22 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
Python中Yield的基本用法
2020/10/18 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
办公室人员先进事迹
2014/01/27 职场文书
上班看电影检讨书
2014/02/12 职场文书
洗车工岗位职责
2014/03/15 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
个人工作表现评语
2014/04/30 职场文书
委托收款证明
2015/06/23 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers