jquery 校验中国身份证号码实例详解


Posted in jQuery onApril 11, 2017

jquery 校验中国身份证号码实例详解

大陆18位身份证(第二代身份证)

身份号码是一组具有特征组合码,由十七位数字本体码和一位校验码组成。

排列顺序从左至右依次为:六位数字地区码,八位数字生日码,三位数字顺序码和一位数字校验码。

校验方法:

(1)先对前17位数字的权求和

        S = Sum(Ci * Vi), i = 0, ... , 16

        Ci:表示身份证号码上第i位置的数字值

        Vi:表示第i位置上的“加权因子”

        加权因子Vi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

(2)计算模(固定算法)

        Y = mod(S, 11)

(3)将计算模Y与对应的校验码校验

        Y:        0 1 2 3 4 5 6 7 8 9 10 (通过Y取得对应校验码与身份证的第18位校验)

        校验码: 1 0 X 9 8 7 6 5 4 3 2

实例代码:

function check_id(value){
  var arrExp = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];//加权因子 
  var arrValid = [1, 0, "X", 9, 8, 7, 6, 5, 4, 3, 2];//校验码 
  if(/^\d{17}\d|x$/i.test(value)){  
    var sum = 0, idx; 
    for(var i = 0; i < value.length - 1; i++){ 
      // 对前17位数字与权值乘积求和 
      sum += parseInt(value.substr(i, 1), 10) * arrExp[i]; 
    } 
    // 计算模(固定算法) 
    idx = sum % 11; 
    // 检验第18为是否与校验码相等 
    return arrValid[idx] == value.substr(17, 1).toUpperCase(); 
  }else{ 
    return false; 
  } 
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

jQuery 相关文章推荐
jQuery遮罩层实例讲解
May 11 jQuery
jquery实现简单实用的轮播器
May 23 jQuery
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 jQuery
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
jquery实现图片跟随鼠标的实例
Oct 17 jQuery
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
jQuery选择器之基本过滤选择器用法实例分析
Feb 19 jQuery
JQuery特殊效果和链式调用操作示例
May 13 jQuery
JQuery属性操作与循环用法示例
May 15 jQuery
jQuery提示框插件SweetAlert用法分析
Aug 05 jQuery
jquery实现直播视频弹幕效果
Feb 25 jQuery
基于jQuery实现瀑布流页面
Apr 11 #jQuery
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 #jQuery
jQuery EasyUI 组件加上“清除”功能实例详解
Apr 11 #jQuery
vue中如何引入jQuery和Bootstrap
Apr 10 #jQuery
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 #jQuery
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
Apr 10 #jQuery
jQuery EasyUI之验证框validatebox实例详解
Apr 10 #jQuery
You might like
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
PHP中文竖排转换实现方法
2015/10/23 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
JavaScript限制在客户区可见范围的拖拽(解决scrollLeft和scrollTop的问题)(2)
2017/05/17 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
vue日历/日程提醒/html5本地缓存功能
2019/09/02 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
python将ip地址转换成整数的方法
2015/03/17 Python
python实现的文件同步服务器实例
2015/06/02 Python
Python正则表达式如何进行字符串替换实例
2016/12/28 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
香港化妆品经销商:我的公主
2016/08/05 全球购物
电气工程及其自动化自我评价四篇
2013/09/24 职场文书
护理自荐信
2013/10/22 职场文书
大堂副理的岗位职责范文
2014/02/17 职场文书
作风大整顿心得体会
2014/09/10 职场文书
毕业酒会致辞
2015/07/29 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
2016年少先队活动总结
2016/04/06 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python