<html>
<head>
<title>abc</title>
<script language="javaScript">
/*验证身份证的完整函数(限中国)*/
function onCheck(){
var idCard = document.getElementById("ic");
if(idCard.value==""){
alert("身份证号不能为空!");
}else{
checkIdcard(idCard.value);
}
}
function checkIdcard(idcard){
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 4;
alert(idcard.length);
//身份号码位数及格式检验
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 0;
}else{
return 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 0; //检测ID的校验位
else return 3;
}else{
return 2;
break;
}
default:
return 1;
break;
}
}
</script>
<input type="text" value="" id="ic" name="ic" />
<input type="button" value="OK" name="btn1" onclick="onCheck();"/>
</body>
</html>
分享到:
相关推荐
这是验证身份证真伪的核心步骤。脚本遍历身份证号码的前17位数字,按一定权重计算总和,再根据总和计算出预期的校验码。如果计算出的校验码与身份证号码的第18位匹配,则身份证号码有效。 具体算法如下: - 将...
用于注册时验证身份证是否正确 可以支持验证真伪 根据验证省份
根据身份证验证规则,做的一个简单的验证身份证第十八位真伪的JS实例,主要是输入身份证计算第十八位数,判断输入身份证真伪,无毒无木马。
接下来,我们来解析和验证身份证的各个部分。 1. 字母部分:由1至2个英文字母组成。验证时,首先将输入的身份证字符串转换为大写,然后通过正则表达式匹配出字母部分,同时检查长度是否合法。 2. 数字部分:由6个...
本话题主要介绍一个JavaScript身份证号码验证函数,该函数具备辨真伪的功能,并能兼容15位和18位的身份证号码。 身份证号码是由15位或18位数字组成,其中包含出生日期、地市级行政区域代码、顺序码和校验码。18位...
- `VerifyCard()`:验证身份证真伪,通过对比读取的数据与官方数据库信息。 - `ControlDevice()`:控制读卡器的操作,如启动读卡、取消读卡等。 5. **开发流程** - 初始化:在应用程序启动时,调用`OpenDevice()...
同时,它还能验证身份证的真伪,防止伪造或篡改,确保信息的安全性。 其次,SDRdCard.cab文件是该控件的组件之一,它是 Cabinet 文件格式,通常用于存储多个文件并提供压缩,是安装过程中的重要组成部分。神思二代...
- 验证身份证真伪,通过内置的防伪算法检查身份证的有效性和真实性。 - 自动上传身份证信息至系统,减少手动输入错误,提高工作效率。 - 支持批量读取,适用于需要大量处理身份证信息的场景,如酒店入住、公司入职等...
代码很简单,使用了正则...带验证具体实现方法php实现加减法验证码代码php中filter函数验证、过滤用户输入的数据js和php邮箱地址验证的实现方法使用php验证复选框有效性的示例php不用正则验证真假身份证PHP5中GD库生成
CPF(Cadastro de Pessoas Físicas)是巴西个人身份证号,用于税务和其他官方记录。...这些文件可能包括JavaScript文件(如`validacpf.js`)、CSS文件(用于样式调整)以及可能的示例或测试文件。
这个系统可能用于教育、企业或政府机构,允许用户在线查找和验证各种证书的真伪。描述中提到的“数据库名称,账号,密码:chafenba”提供了关于数据库连接的基本信息,这可能是开发者在本地环境进行测试时使用的默认...
4. **技能列表**:罗列你的技术专长,如编程语言(Java、Python、C++等)、框架(React、Angular、Vue.js等)、数据库管理(SQL、NoSQL)、操作系统(Linux、Windows)等。确保这些技能与应聘职位相符。 5. **工作...