js如何实现扫描身份证识别_JavaScript实现身份证验证代码实例
function isIdCardNo(num) {
num = num.toUpperCase(); //身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))) {
//alert('输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X。');
//alert('身份证号长度不正确或不符合规定!');
return false;
}
//验证前2位,城市符合
var aCity={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:"澳门",91:"国外"};
if(aCity[parseInt(num.substr(0,2))]==null){
//alert('身份证号不正确或不符合规定!');
return false;
}
//alert('城市:'+aCity[parseInt(num.substr(0,2))]);
//下面分别分析出生日期和校验位
var len, re; len = num.length;
if (len == 15) {
re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
var arrSplit = num.match(re); //检查生日日期是否正确
var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
var bGoodDay; bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay) {
//alert('身份证号的出生日期不对!');
return false;
} else { //将15位身份证转成18位 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
for(i = 0; i < 17; i ++) {
nTemp += num.substr(i, 1) * arrInt[i];
}
num += arrCh[nTemp % 11];
return true;
}
}
if (len == 18) {
re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
var arrSplit = num.match(re); //检查生日日期是否正确
var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
var bGoodDay; bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay) {
//alert(dtmBirth.getYear());
//alert(arrSplit[2]);
//alert('身份证号的出生日期不对!');
return false;
}
else { //检验18位身份证的校验码是否正确。 //校验位按照ISO 7064:1983.MOD 11-2的规定生成,X可以认为是数字10。
var valnum;
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
for(i = 0; i < 17; i ++) {
nTemp += num.substr(i, 1) * arrInt[i];
}
valnum = arrCh[nTemp % 11];
if (valnum != num.substr(17, 1)) {
//alert('18位身份证的校验码不正确!应该为:' + valnum);
//alert('18位身份证号的校验码不正确!');
return false;
}
return true;
}
}
return false;
};
js如何实现扫描身份证识别_JavaScript实现身份证验证代码实例相关推荐
- python身份证识别仪_C#身份证识别相关技术功能详解
最近研究C#相关的OCR技术,图像识别一般C和C++这种底层语言做的比较多,C#主要是依托一些封装好的组件进行调用,这里介绍一种身份证识别的方法. 环境搭建 在File类别下下载这个EXE,进行安装, ...
- js如何实现扫描身份证识别_javascript实现根据身份证号读取相关信息
公民身份号码由六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码组成. 地址码 前两位表示省,中间两位表示市,后两位表示县 顺序码 表示同一地址码所标识的区域范围内,对同年.月.日出生 ...
- 百度云身份证识别以及获取身份证信息
因为需用到百度API 所以我们需要在百度里面进去注册 飞机票 百度ai https://ai.baidu.com/tech/ocr_cards 先创建应用,按步骤填写资料 创建公共后,如下,记住API ...
- php结合阿里云(印刷文字识别-身份证识别)进行身份证真实性验证------识别图片中的信息进行验证
1.购买阿里云的套餐: 2.查看一下你的AppCode: 3.代码部分: /*** 图片转码*/public function img_base64($path){//对path进行判断,如果是本地文 ...
- 身份证识别促进互联网实名制
网上购物.移动办公.智慧城市等等,渗透进我们的日常生活工作中, 下面列举两个身份证识别的具体使用场景.例如现注册各APP需要实名验证,开发公司就可以在APP里集成身份证识别 SDK.APP集成了身份证 ...
- 身份证识别在移动端和服务器端的应用与特点
身份证识别可以集成在APP中,也可以集成在服务器中,利用移动端摄像头拍摄或扫描证件并识别信息.完成信息录入. 而在服务器端身份证识别主要是两方面的应用:私有云端的身份证识别与公有云端的身份证识别. 一 ...
- 安卓端身份证识别与云端服务器识别
安卓端的身份证识别已经不能满足实际的需求,和云端服务器挂接的方法应运而生,以往广泛应用方式为pc端的二代证读卡机具,但是单纯的二代证读卡方式已经不能应用到移动端的设备上,即使使用起来比较笨重,不像电话 ...
- 身份证识别和聚合收单
一,身份认识别(这里的操作是后端进行操作的) 1.需要一个身份证读卡机器,安装相应sdk 身份证识别和聚会收单安装包我放在文章最后,需要自己提取 2,写代码实现该功能: 引入jar包 <depe ...
- 达摩院视觉AI课-身份证识别
功能描述 身份证识别可以识别二代身份证关键字段内容,关键字段包括:姓名.性别.民族.身份证号.出生日期.地址信息.有效起始时间.签发机关,同时可输出身份证区域位置和人脸位置信息. 应用场景 远程注册: ...
最新文章
- 利用Eventlog Analyzer分析日志
- apt-get update 出现E: Could not get lock /var/lib/apt/lists/lock问题的解决
- 如何获取Google地图API密钥?(翻译版)
- 设计模式之单件模式(Singleton Pattern)
- 物联网现状及落地难点
- mysql写入 cpu飙升_分析MySQL中索引引引发的CPU负载飙升的问题
- 关于马克飞象中的Latex语法与CSDN中的区别
- Java连Mysql数据库
- 自己动手写CPU(6)简单算术操作指令
- 【弄nèng - SearchGuard】应用篇 —— Windows下elasticsearch5.2.2 安装SearchGuard5.2.2
- 因果系列文章(1):因果推断及相关论文
- 如何关闭windows杀毒软件
- PAT乙级【1051~1095】
- 教您如何使用WebMatrix创建第一个网页
- 文本检测 OpenCV EAST 文本检测器 源代码
- 全速前进! AI助力工业制造智能升级
- unity汽车引擎音效变调实现
- 纯JAVA实现微信跳一跳刷分
- matlab lyapunov指数,lyapunov指数matlab
- 创业-创新构思:一款关于盖楼房的益智游戏