身份证的合法性验证
<script>
function checkIdcard(idcard){
var Errors=new Array(
"验证通过!",
"身份证号码位数不对!",
"身份证号码出生日期超出范围或含有非法字符!",
"身份证号码校验错误!",
"身份证地区非法!"
);
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[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[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]) return Errors[0]; //检测ID的校验位
else return Errors[3];
}
else return Errors[2];
break;
default:
return Errors[1];
break;
}
}
alert(checkIdcard("220183198808081610"))
</script>
分享到:
相关推荐
在工具有关的方面,许多编程语言如Python、Java等都有现成的身份证验证库,可以直接调用进行身份证合法性验证,如Python的`idutils`库。这些库通常已经实现了上述的校验规则,开发者只需简单调用即可。 在邮件发送...
JAVA身份证合法性校验,JAVA验证所有的身份证的合法性,
在Java Web开发中,使用JSP(JavaServer Pages)结合Java后端逻辑,我们可以实现对身份证合法性的有效验证。本文将详细讲解如何在JAVA+jsp环境下进行身份证验证。 首先,我们需要理解身份证号码的构成。中国居民...
Java 编写的身份证号码合法性验证程序,依据 ISO 7064:1983 标准,可将输入的18位身份证号码进行验证,给出合法性和所属省份。程序运行需要提前配置好 JDK,解压文件后直接运行 test.cmd 即可。
该函数是支持Oracle环境下的对身份照进行校验的函数,它是按照身份照计算算法去校验的,能够精准的判断出身份照是否合法,通过返回值为1:表示为正确的身份证,返回值为0表示为错误的身份证
最完善的身份证号码合法性校验Java算法,适合Android平台,可以直接拿来在项目中使用,正则表达式。
验证身份证号是否合法? Private Sub Command1_Click() Dim a%(17), w(), x$, s$, sum%, i%, y% Do '这个循环用来保证输入的字符串是17位的 s = Text1.Text Loop While Len(s) <> 17 w = Array(7, 9, 10, 5, 8,...
vb.net 身份证合法性校验 返回true为正确的身份证号,返回False则为错误的身份证。
真实的身份证号码还需要考虑性别、出生日期等信息的合法性,这需要进一步的逻辑处理。例如,可以通过`Date.parse()`函数检查出生日期是否合理。 此外,考虑到隐私保护,通常不建议在前端进行过于复杂的身份证号码...
很牛X的身份证编号数有效性检测,普通正则表达式只能验证身份证的位数及格式是否正确,不能验证是否是真实有效的身份证号码。这个JS程序可以验证输入的身份证号码是否是合法注册的,很好很强大啊!甚至可以验证出...
JS验证身份证号码合法性
在IT行业中,身份证验证器是一种常见的实用工具,主要用于验证个人身份证号码的合法性,并根据有效身份证号码解析出对应的身份信息,如出生日期、性别以及户籍所在地等。本项目以C#编程语言实现,提供了用户友好的...
在C++编程中,身份证号码验证是一个常见的任务,主要用于确保用户输入的身份信息是合法的。身份证号码是由18位数字组成,包含个人信息如出生日期、性别和地区编码等。本项目提供的`checkID.cpp`文件应该包含了实现这...
本文将详细介绍如何通过JavaScript实现对身份证合法性的验证,包括以下几个方面: 1. **身份证的基本格式校验**:确保输入的字符串符合身份证的基本形式。 2. **身份证归属地验证**:通过前两位数字确定身份证归属...
在这个例子中,JavaScript代码负责处理用户的输入,进行身份证号码的有效性验证。 3. **身份证号码验证规则**:中国的身份证号码由18位数字组成,包括地区码、出生日期码、顺序码和校验码。验证时需检查: - 地区...
### 身份证号码合法性判断 #### 一、前言 身份证号码作为个人身份的重要标识,在各类信息系统中扮演着至关重要的角色。为了确保系统中录入的身份证号码的有效性和准确性,进行身份证号码合法性判断是非常必要的。...
然而,它也存在一定的局限性,例如无法检测身份证号码是否已被合法持有者使用,也不能防止身份信息被盗用。因此,在高安全性要求的场景下,还需结合其他身份验证手段。 综上所述,基于JavaScript的身份证号码验证...
在进行用户信息验证时,身份证号的有效性检查是一项常见的需求。特别是在中国,一个合法有效的身份证号码必须符合一定的格式规范和逻辑规则。本文将深入解析MySQL数据库中实现的身份证校验函数——`CHECKIDCARD`。该...
易语言身份证信息验证源码能够帮助开发者完成这一任务,确保输入的身份证号码合法有效。 在易语言中,实现身份证验证通常会涉及到以下几个关键知识点: 1. **字符串处理**:身份证号码是字符串类型,易语言中可以...