<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>校验身份证</title>
<script>
//校验身份证
function checkIdcard(idcard) {
var Errors = new Array(
"true",
"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"
);
var area = {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:"国外"}
var idcard,Y,JYM;
var S,M;
var idcard_array = new Array();
idcard_array = idcard.split("");
//地区检验
if (area[parseInt(idcard.substr(0, 2))] == null) return Errors[4];
//身份号码位数及格式检验
switch (idcard.length) {
case 15:
if ((parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 || ((parseInt(idcard.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(idcard.substr(6, 2)) + 1900) % 4 == 0 )) {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/;
//测试出生日期的合法性
} else {
ereg = /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;
//测试出生日期的合法性
}
if (ereg.test(idcard)) return Errors[0];
else return Errors[2];
break;
case 18:
//18位身份号码检测
//出生日期的合法性检查
//闰年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
//平年月日:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
if (parseInt(idcard.substr(6, 4)) % 4 == 0 || (parseInt(idcard.substr(6, 4)) % 100 == 0 && parseInt(idcard.substr(6, 4)) % 4 == 0 )) {
ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/;
//闰年出生日期的合法性正则表达式
} else {
ereg = /^[1-9][0-9]{5}(19|20)[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/;
//平年出生日期的合法性正则表达式
}
if (ereg.test(idcard)) {//测试出生日期的合法性
//计算校验位
S = (parseInt(idcard_array[0]) + parseInt(idcard_array[10])) * 7
+ (parseInt(idcard_array[1]) + parseInt(idcard_array[11])) * 9
+ (parseInt(idcard_array[2]) + parseInt(idcard_array[12])) * 10
+ (parseInt(idcard_array[3]) + parseInt(idcard_array[13])) * 5
+ (parseInt(idcard_array[4]) + parseInt(idcard_array[14])) * 8
+ (parseInt(idcard_array[5]) + parseInt(idcard_array[15])) * 4
+ (parseInt(idcard_array[6]) + parseInt(idcard_array[16])) * 2
+ parseInt(idcard_array[7]) * 1
+ parseInt(idcard_array[8]) * 6
+ parseInt(idcard_array[9]) * 3;
Y = S % 11;
M = "F";
JYM = "10X98765432";
M = JYM.substr(Y, 1);
//判断校验位
if (M == idcard_array[17].toUpperCase()) return Errors[0]; //检测ID的校验位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
function check()
{
var card=document.getElementById("card");
var result=checkIdcard(card.value);
if(result=='true')
document.getElementById("info").innerHTML="<font color='blue'>身份证校验正确</font>";
else
document.getElementById("info").innerHTML="<font color='red'>"+result+"</font>";
}
</script>
</head>
<body>
身份证:<input type="text" id="card" size="20"> <input type="button" value="校验身份证" onclick="check();"><br><br>
<div id="info"></div>
</body>
</html>
分享到:
相关推荐
自我总结的前端关于身份证验证的js文件,可帮助前端人员快速验证输入内容时否符合身份证规定。
### 身份证号验证程序JavaScript知识点解析 #### 一、背景介绍 在现代Web开发中,表单验证是一项非常重要的任务,它确保用户输入的数据符合预期格式与规则。身份证号码验证作为其中的一个典型场景,对于确保数据的...
在JavaScript(简称js)编程中,验证身份证号和银行卡号是非常常见的需求,特别是在网页表单提交或者用户注册等场景。身份证号码验证确保了输入的有效性,防止非法或错误的输入,而银行卡号验证则可以保护用户的金融...
JavaScript(简称JS)是一种广泛用于网页和网络应用的编程语言,尤其在客户端脚本中扮演着重要角色。本文将深入探讨如何使用JavaScript进行身份证验证,包括有效性检查和区域信息识别。 身份证验证是确保用户输入的...
然而,它也存在一定的局限性,例如无法检测身份证号码是否已被合法持有者使用,也不能防止身份信息被盗用。因此,在高安全性要求的场景下,还需结合其他身份验证手段。 综上所述,基于JavaScript的身份证号码验证...
5. **JS特效-表单按钮**:标签中提到的"JS特效-表单按钮",可能指的是在提交表单时,通过JavaScript实现的一些交互效果,如按钮禁用防止重复提交、加载动画展示上传进度等。这些特效可以提升用户体验,使上传过程...
### JavaScript实用函数集合:中文、数字、身份证等输入验证 #### 概述 在Web开发过程中,表单数据的有效性和准确性对于用户体验至关重要。JavaScript作为前端脚本语言,提供了丰富的工具来帮助开发者进行输入验证...
知识点概述: 本文详细介绍了如何使用JavaScript编写脚本...以上就是使用JavaScript实现身份证号码验证的有效性检测所需掌握的知识点。通过这些函数的组合使用,可以有效地判断一个身份证号码是否是真实且有效的号码。
为了确保程序的稳定性和兼容性,开发时需要考虑多方面的因素,例如设备连接状态的检测、错误处理机制、线程安全等。此外,由于涉及到个人隐私,开发者还应遵循相关的法律法规,确保数据的安全使用。 总的来说,华视...
这个函数用于检测用户输入中是否包含了不允许出现的特殊字符(如斜杠、尖括号等)。如果存在这些字符,则返回`false`表示输入不合法。 ### 4. 表单验证流程 (CheckForm) 此函数负责遍历整个表单的所有元素,并对每...
下面,我们将详细探讨如何使用JavaScript编写函数来实现对身份证号码最后一位的验证。 首先,需要了解身份证号码的构成: 1. 前6位是地区代码,代表了持证人户籍所在地。 2. 接下来的8位是出生日期码,按“YYYYMMDD...
很牛X的身份证编号数有效性检测,普通正则表达式只能验证身份证的位数及格式是否正确,不能验证是否是真实有效的身份证号码。这个JS程序可以验证输入的身份证号码是否是合法注册的,很好很强大啊!甚至可以验证出...
在sfz检测网站源码中,JavaScript文件(如`script.js`)将处理用户输入的身份证信息,进行验证和检测。这可能涉及到正则表达式用于格式验证,以及可能的身份证号码算法校验。此外,JavaScript还可以用来实现无刷新的...
OCR技术通过先进的图像处理和机器学习算法,可以自动检测身份证的位置,对身份证上的文字进行识别,并将结果以结构化的数据形式返回。 在JavaScript环境下使用NTESOcrSDK,开发者需要首先通过npm或yarn等包管理工具...
校验码是根据前17位数字按照特定算法计算得出的,用于检测整个身份证号码的一致性。这个算法包括加权求和和模11运算,但这段代码并未包含这部分验证。 因此,要实现完整的身份证验证,我们需要额外的代码来检查地区...
多语言支持:尽管OpenCV主要使用C++编写,但它提供了丰富的API绑定,支持包括C、Python、Java、MATLAB、JavaScript等多种编程语言,方便不同领域的开发者使用。 开源与免费:OpenCV遵循BSD开源许可证发布,用户...
JS常用工具函数(压缩包中含有MD文件可自行查看)--包含:通用格式化时间、字符串验证-验证邮箱、手机号、电话号码、url地址、严格校验身份证号码,判断数据类型-是否是字符串、数字、Boolean、函数、对象、数组...
自己写的比较全js验证,供大家参考 //身份证验证 function checkIdcard(idcard1,showMsg){ var idcard=this.trim(idcard1);// 对身份证号码做处理。去除头尾空格。 var Errors=new Array( "验证通过!", ...
这是一个示例网页,它演示了如何在Web环境中集成神思二代证读卡控件,展示如何通过JavaScript或服务器端脚本调用控件,读取身份证信息,并在网页上显示。 在实际应用中,开发者可以将神思二代证读卡控件集成到各种...
隐私合规检测的目标是确保App不会非法收集、传输或存储用户敏感数据,如身份证号、电话号码、位置信息等。通过Frida,我们可以: 1. 监听和记录特定API调用:在App运行时,检测可能涉及隐私数据的系统调用或第三方...