js 第二代身份证号码的验证机制代码


Posted in Javascript onMay 12, 2011

由于响应速度极快,可以肯定不是联机校验正确性的,那也就是说第二代身份证除了大家都知道的几位表示生日和性别的规则以外,还有另外的自我校验规则。于是翻开页面源码查看,发现这段js没有被压缩,所以规则也很好懂。
就在这里给大家科普下,不知道是不是火星了,呵呵。
以下代码来自这里,版权归盛大。当然,你也可以在维基百科找到更详细的介绍和算法。

iW = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); 
iSum = 0; 
for( i=0;i<17;i++){ 
iC = v_card.charAt(i) ; 
iVal = parseInt(iC); 
iSum += iVal * iW[i]; 
} 
iJYM = iSum % 11; 
var sJYM = ''; 
if(iJYM == 0) sJYM = "1"; 
else if(iJYM == 1) sJYM = "0"; 
else if(iJYM == 2) sJYM = "x"; 
else if(iJYM == 3) sJYM = "9"; 
else if(iJYM == 4) sJYM = "8"; 
else if(iJYM == 5) sJYM = "7"; 
else if(iJYM == 6) sJYM = "6"; 
else if(iJYM == 7) sJYM = "5"; 
else if(iJYM == 8) sJYM = "4"; 
else if(iJYM == 9) sJYM = "3"; 
else if(iJYM == 10) sJYM = "2"; 
var cCheck = v_card.charAt(17).toLowerCase(); 
if( cCheck != sJYM ){ 
return false; //对不上就是假号码 
}
Javascript 相关文章推荐
一直复略了的一个问题,关于表单重复提交
Feb 15 Javascript
JavaScript 加号(+)运算符号
Dec 06 Javascript
jquery 新浪网易的评论块制作
Jul 01 Javascript
对xmlHttp对象的理解
Jan 17 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
Aug 05 Javascript
CSS或者JS实现鼠标悬停显示另一元素
Jan 22 Javascript
jquery单击事件和双击事件冲突解决方案
Mar 02 Javascript
Bootstrap每天必学之轮播(Carousel)插件
Apr 25 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
Jan 11 Javascript
jQuery.form.js的使用详解
Jun 14 jQuery
node.js之基础加密算法模块crypto详解
Sep 11 Javascript
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
基于JQuery的动态删除Table表格的行和列的代码
May 12 #Javascript
五个jQuery图片画廊插件 推荐
May 12 #Javascript
JavaScript 继承使用分析
May 12 #Javascript
JS焦点图切换,上下翻转
May 12 #Javascript
js 中{},[]中括号,大括号使用详解
May 12 #Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
May 12 #Javascript
JavaScript中的几个关键概念的理解-原型链的构建
May 12 #Javascript
You might like
thinkphp3.0 模板中函数的使用
2012/11/13 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
javascript 遍历验证所有文本框的值
2009/08/27 Javascript
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
js禁止表单重复提交
2017/08/29 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
vue列表数据发生变化指令没有更新问题及解决方法
2020/01/16 Javascript
rhythmbox中文名乱码问题解决方法
2008/09/06 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
Python pandas常用函数详解
2018/02/07 Python
Django开发的简易留言板案例详解
2018/12/04 Python
pycharm配置git(图文教程)
2019/08/16 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
python线程池如何使用
2020/05/28 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
入党积极分子自我鉴定
2014/02/18 职场文书
材料物理专业求职信
2014/09/01 职场文书
2015年普法依法治理工作总结
2015/05/26 职场文书
对Golang中的FORM相关字段理解
2021/05/02 Golang
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
python ConfigParser库的使用及遇到的坑
2022/02/12 Python