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 相关文章推荐
JavaScript 在线压缩和格式化收藏
Jan 16 Javascript
jQuery学习5 jQuery事件模型
Feb 07 Javascript
jQuery 一个图片切换的插件
Oct 09 Javascript
页面实时更新时间的JS实例代码
Dec 18 Javascript
javaScript数组迭代方法详解
Apr 14 Javascript
JavaScript日期选择功能示例
Jan 16 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
Jul 07 Javascript
Vue.js学习笔记之修饰符详解
Jul 25 Javascript
如何用webpack4带你实现一个vue的打包的项目
Jun 20 Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 Javascript
JavaScript eval()函数定义及使用方法详解
Jul 07 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
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
2021/03/09 PHP
javascript String 的扩展方法集合
2008/06/01 Javascript
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
Angular js 实现添加用户、修改密码、敏感字、下拉菜单的综合操作方法
2017/10/24 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
python with提前退出遇到的坑与解决方案
2018/01/05 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
Python读取YAML文件过程详解
2019/12/30 Python
python 使用事件对象asyncio.Event来同步协程的操作
2020/05/04 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
python statsmodel的使用
2020/12/21 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
英国团购网站:Groupon英国
2017/11/28 全球购物
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
个人承诺书怎么写
2014/05/24 职场文书
工作经历证明范本
2015/06/15 职场文书
董事会决议范本
2015/07/01 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis