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查找和过滤_动力节点节点Java学院整理
Jul 04 jQuery
jquery版轮播图效果和extend扩展
Jul 18 jQuery
简单实现jQuery弹窗效果
Oct 30 jQuery
简单实现jquery隔行变色
Nov 09 jQuery
jQuery实现获取动态添加的标签对象示例
Jun 28 jQuery
在vue项目中使用Jquery-contextmenu插件的步骤讲解
Jan 27 jQuery
jQuery each和js forEach用法比较
Feb 27 jQuery
简单易扩展可控性强的Jquery转盘抽奖程序
Mar 16 jQuery
使vue实现jQuery调用的两种方法
May 12 jQuery
如何解决jQuery 和其他JS库的冲突
Jun 22 jQuery
jQuery插件实现图片轮播效果
Oct 19 jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 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计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
php7下的filesize函数
2019/09/30 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
JS数字抽奖游戏实现方法
2015/05/04 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
Node.js的Web模板引擎ejs的入门使用教程
2016/06/06 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
JS实现的简单图片切换功能示例【测试可用】
2017/02/14 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
python中使用mysql数据库详细介绍
2015/03/27 Python
Python入门之modf()方法的使用
2015/05/15 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
python 的列表遍历删除实现代码
2020/04/12 Python
python遍历目录的方法小结
2016/04/28 Python
Python中列表元素转为数字的方法分析
2016/06/14 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
python实现接口并发测试脚本
2019/06/25 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
2020/06/10 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
项目建议书格式
2014/03/12 职场文书
运动会闭幕词
2015/01/28 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis
一条慢SQL语句引发的改造之路
2022/03/16 MySQL
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android