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插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
Mar 24 jQuery
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
JQuery判断正整数整理小结
Aug 21 jQuery
jQuery 开发之EasyUI 添加数据的实例
Sep 26 jQuery
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
JQuery Ajax跨域调用和非跨域调用问题实例分析
Apr 16 jQuery
JavaScript或jQuery 获取option value值方法解析
May 12 jQuery
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
jQuery实现飞机大战小游戏
Jul 05 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
PHP chop()函数讲解
2019/02/11 PHP
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
用js判断页面是否加载完成实现代码
2012/12/11 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
Bootstrap组件之下拉菜单,多级菜单及按钮布局方法实例
2017/05/25 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
2018/08/08 jQuery
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
vue2和vue3的v-if与v-for优先级对比学习
2020/10/10 Javascript
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python中字符串的格式化方法小结
2016/05/03 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
浅谈python可视化包Bokeh
2018/02/07 Python
python实现图书管理系统
2018/03/12 Python
Python SQL查询并生成json文件操作示例
2018/08/17 Python
python数据批量写入ScrolledText的优化方法
2018/10/11 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
keras-siamese用自己的数据集实现详解
2020/06/10 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
CSS3按钮鼠标悬浮实现光圈效果源码
2016/09/11 HTML / CSS
求职自荐书范文
2013/12/04 职场文书
创业计划书怎样才能打动风投
2014/01/01 职场文书
摄影助理岗位职责
2014/02/07 职场文书
书香家庭事迹材料
2014/05/09 职场文书
2014组织生活会方案
2014/05/19 职场文书
迎国庆演讲稿
2014/09/15 职场文书
党员干部廉政承诺书
2015/04/28 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript