公民身份号码由六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码组成。

地址码 前两位表示省,中间两位表示市,后两位表示县

顺序码 表示同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。顺序码的奇数分给男性,偶数分给女性。

校验码 是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

校验码计算方法:

1)将前面的身份证号码17位数分别乘以不同的系数,从第一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;

2)将这17位数字和系数相乘的结果相加,用加出来和除以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。

身份证号合法性验证  支持15位和18位身份证号 支持地址编码、出生日期、校验位验证

身份证查询

籍    贯:

出生日期:

性    别:

//去掉字符串头尾空格

var home='',birthday='',sex='';

function trim(str) {

return str.replace(/^\s*|\s*$/g, "");

}

//验证身份证

function IdentityCodeValid(code) {

code=trim(code);

var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北 ",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏 ",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门"};

if(!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)){

alert("身份证号格式错误");

home='',birthday='',sex='';

return false;

}

if(!city[code.substring(0,2)]){

alert("地址编码错误");

home='',birthday='',sex='';

return false;

}

if(code.length == 18){    //18位身份证需要验证最后一位校验位

var codeArr = code.split('');

var factor = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ];    //加权因子

var parity = [ 1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2 ];                        //校验位

var sum = 0;

for (var i = 0; i < 17; i++){

sum += codeArr[i] * factor[i];

}

if(parity[sum % 11] != codeArr[17]){

alert("校验位错误");

home='',birthday='',sex='';

return false;

}

}

//省份

home = city[code.substring(0,2)];

//生日

birthday = code.substring(6,10)+'年'+code.substring(10,12)+'月'+code.substring(12,14)+'日';

//性别

if(code.length==15){

sex = code.substring(14,15)%2==0 ? '女':'男';

}else if(code.length==18){

sex = code.substring(14,17)%2==0 ? '女':'男';

}

}

//输出结果

document.querySelector('#btn').οnclick=function(){

var code=document.querySelector('#code').value;

IdentityCodeValid(code);

document.querySelector('#home span').innerHTML=home;

document.querySelector('#birthday span').innerHTML=birthday;

document.querySelector('#sex span').innerHTML=sex;

}

本文主要是根据公民身份证的规则,读取相关的身份信息,非常方便实用,推荐给大家。

js如何实现扫描身份证识别_javascript实现根据身份证号读取相关信息相关推荐

  1. javascript实现根据身份证号读取相关信息

    本文转载:https://www.jb51.net/article/58643.htm 这篇文章主要介绍了javascript实现根据身份证号读取相关信息,需要的朋友可以参考下 公民身份号码由六位数字 ...

  2. 【身份证识别】形态学二代身份证号码识别系统【含GUI源码 948期】

    一.代码运行视频(哔哩哔哩) [身份证识别]形态学二代身份证号码识别系统[含GUI源码 948期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MA ...

  3. 根据身份证号获取相关信息(籍贯、性别、出生日期...)

    根据身份证号获取相关信息(籍贯.性别.出生日期-) 首先我的只是个demo,身份证号也是写死的.仅供参考! 通过访问其他HTTP接口,将身份证号当作参数.调用接口返回相关信息 效果展示: **接口地址 ...

  4. 【身份证识别】形态学二代身份证号码识别系统【含GUI Matlab源码 948期】

    ⛄一.身份证号码识别简介 1 引言 作为居民身份的象征,身份证是居民身份的唯一标识,它已成为生活中必不可少的证件.在火车站.酒吧等公共场所,流动人口大人员复杂,警察需要对公民的身份证进行核对,排除可疑 ...

  5. 身份证识别——iOS端实现身份证检测

    前言 1.之前在PC端做过身份证检测识别相关的项目,用的环境是Caffe-SSD训练的VGG16,模型大小大概为90M左右,在PC下,不调用GPU加速的话,处理检测速度并不理想.之后想把这个项目移植到 ...

  6. 【身份证识别】BP神经网络身份证号码识别【含Matlab源码 1344期】

    ⛄一.身份证号码识别简介(附课题作业报告) 1 引言 当今是一个信息高度发达的时代,对于每个公民而言身份证那一连串的数字体现了个人信息的唯一性,出于保障公民合法权益和社会治安的考虑,越来越多的行业都开 ...

  7. python 身份证识别仪_Card-Ocr:身份证识别 OCR

    Card-Ocr 身份证识别OCR, 从身份证图片中自动提取身份证号. 测试图片来自百度搜索的样例图片. 找到的图片比较少,目前都能正确识别. 可用的数据集个人很难找到. 依赖 opencv pyte ...

  8. Flask实现身份证号查询相关信息(Python2.7)

    Python3是趋势,但是新浪SAE平台的便宜点的微服务,是Python2.7的.所以以下代码的环境是Python2.7. 原理是,一些关于政策的表,以这种Excel的方式存储在文件夹中: 创建一个类 ...

  9. js如何实现扫描身份证识别_JavaScript实现身份证验证代码实例

    function isIdCardNo(num) { num = num.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能 ...

最新文章

  1. Nature:科学家首次实现肉眼可见的量子纠缠
  2. 学习新 api 的思考过程 4.18
  3. 【情人节表白代码】——情人节将至,10余款浪漫爱心特效送给你爱的那个她
  4. 二叉树学习之非递归遍历
  5. 红帽Linux故障定位技术详解与实例(3)
  6. vue 属性 watch
  7. MyCat双机HA高可用集群搭建_Keepalived安装和配置---MyCat分布式数据库集群架构工作笔记0029
  8. Java程序员面试准备-路线
  9. ubuntu设置始终亮屏_教你在Ubuntu系统下保存屏幕亮度设置
  10. 电信无线服务器的密码是什么,电信光猫wifi默认密码是多少?
  11. Xcode9之折叠代码
  12. 在iOS上使用AirPrint实现无线打印功能
  13. qcc304x笔记之长按开关机(四)
  14. 爱心动画c语言,jquery+html5烂漫爱心表白动画代码分享
  15. android 名片识别软件,手机名片识别工具Android名片全能王评测
  16. 【运用flex制作携程界面练习笔记】
  17. 微信小程序——简单饮食推荐(二)
  18. jenkins部署流程图_Jenkins 自动化部署上线
  19. 计算机二级改错题怎么分,计算机二级上机考(程序改错题)1.doc
  20. 800 篇顶会论文纵览推荐系统的前沿进展

热门文章

  1. if - else语句
  2. 测试使用SRv6构建家宽视频监控“云专线”
  3. CSS布局 通栏平均分布型
  4. MySQL安装图解过程
  5. vsftpd基于mysql_vsftpd的基于pam_mysql的虚拟用户配置示例
  6. unity3D实践报告-忍者跑酷
  7. 3D游戏建模性感女神!向安吉丽娜朱莉的神颜致敬!| 模型欣赏
  8. php对视频分割,一款简单实用的视频分割软件,快速将一段视频分割成两段
  9. witter被Instagram超越,在中国超越微博的将是谁
  10. xshell 点击绿方块打不开xftp提示需要下载