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+ACTIVEX实现网页选择本地目录路径对话框
Mar 18 Javascript
JS实现字体选色板实例代码
Nov 20 Javascript
捕获和分析JavaScript Error的方法
Mar 25 Javascript
javascript正则匹配汉字、数字、字母、下划线
Apr 10 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
Feb 13 Javascript
javascript实现鼠标拖动改变层大小的方法
Apr 30 Javascript
Bootstrap警告框(Alert)插件使用方法
Mar 21 Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 Javascript
Vue二次封装axios为插件使用详解
May 21 Javascript
Vue Extends 扩展选项用法完整实例
Sep 17 Javascript
jquery实现弹窗(系统提示框)效果
Dec 10 jQuery
Vue基于iview实现登录密码的显示与隐藏功能
Mar 06 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统计二维数组元素个数的方法
2013/11/12 PHP
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
判定是否原生方法的JS代码
2013/11/12 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
[48:02]Ti4循环赛第三日 VG vs Liquid和NEWBEE vs DK
2014/07/12 DOTA
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
如何表示python中的相对路径
2020/07/08 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
中国医药集团国药在线:国药网
2017/02/06 全球购物
什么是反射?如何实现反射?
2016/07/25 面试题
证券期货行业个人的自我评价
2013/12/26 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
咖啡厅商业计划书
2014/09/15 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
作风建设整改方案
2014/10/27 职场文书
党员个人党性分析材料
2014/12/18 职场文书
学生评语集锦
2015/01/04 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
Python+Tkinter制作专属图形化界面
2022/04/01 Python
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript