凡安网络工作室
代码:js校验身份证号码
位置: 首页 » 代码 » js校验身份证号码

js校验身份证号码

演示

输入身份证号码:

源代码

校验身份证号码.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>身份证号码验证</title>
<script type="text/javascript">
//校验身份证号码
var yyyy;
var mm;
var dd;
var birthday;
var address;
var sex;
function CheckValue(idCard){
//是否输入
var id=idCard;
var id_length=id.length;
if (id_length==0){
alert("请输入身份证号码!");
return false;
}
//长度校验
if (id_length!=15 && id_length!=18){
alert("身份证号长度应为15位或18位!");
return false;
}
//判断是否纯数字
if(isNaN(idCard))
{
alert("含有非法字符!");
return false;
}
//地区校验
//
 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:"国外"}
 
 if(area[parseInt(idCard.toString().substr(0,2))]==null)
 {
 alert('身份证地区非法!')
 return false;
 }
 else
address = area[parseInt(idCard.toString().substr(0,2))];
//日期校验
if (id_length==15){
yyyy="19"+id.toString().substring(6,8);
mm=id.toString().substring(8,10);
dd=id.toString().substring(10,12);
 
if (mm>12 || mm<=0){
alert("输入身份证号,月份非法!");
return false;
}
 
if (dd>31 || dd<=0){
alert("输入身份证号,日期非法!");
return false;
}
 
birthday=yyyy+ "-" +mm+ "-" +dd;
 
if ("13579".indexOf(id.toString().substring(14,15))!=-1){
sex="女";
}else{
sex="男";
}
}else if (id_length==18){
 
yyyy=id.toString().substring(6,10);
if (yyyy>2200 || yyyy<1900){
alert("输入身份证号,年度非法!");
return false;
}
 
mm=id.toString().substring(10,12);
if (mm>12 || mm<=0){
alert("输入身份证号,月份非法!");
return false;
}
 
dd=id.toString().substring(12,14);
if (dd>31 || dd<=0){
alert("输入身份证号,日期非法!");
return false;
}
//校验位校验
if (!isChinaIDCard(idCard))
{
return false ;
}
birthday=yyyy+ "-" +mm+ "-" +dd;
 
if ("13579".indexOf(id.toString().substring(14,15))!=-1){
sex="女";
}else{
sex="男";
}
 
 
}  
return true;
}
//18位校验码校验
function isChinaIDCard(StrNo)
{
StrNo = StrNo.toString();
var a, b, c;
a = parseInt(StrNo.substr(0, 1)) * 7+parseInt(StrNo.substr(1, 1)) * 9 +parseInt(StrNo.substr(2, 1)) * 10;
a = a + parseInt(StrNo.substr(3, 1)) * 5+parseInt(StrNo.substr(4, 1)) * 8+parseInt(StrNo.substr(5, 1)) * 4;
a = a + parseInt(StrNo.substr(6, 1)) * 2+parseInt(StrNo.substr(7, 1)) * 1+parseInt(StrNo.substr(8, 1)) * 6;
a = a + parseInt(StrNo.substr(9, 1)) * 3+parseInt(StrNo.substr(10, 1)) * 7+parseInt(StrNo.substr(11, 1)) * 9;
a = a + parseInt(StrNo.substr(12, 1)) * 10+parseInt(StrNo.substr(13, 1)) * 5+parseInt(StrNo.substr(14, 1)) * 8;
a = a + parseInt(StrNo.substr(15, 1)) * 4+parseInt(StrNo.substr(16, 1)) * 2;
b = a % 11;
 
if (b == 2)
//最后一位为校验位
{
c = StrNo.substr(17, 1).toUpperCase(); //转为大写X
}
else
{
c = parseInt(StrNo.substr(17, 1));
}
 
switch (b)
{
case 0:
if (c != 1)
{
alert("身份证号码校验位错:最后一位应该为:1");
return false;
}
break;
case 1:
if (c != 0)
{
alert("身份证号码校验位错:最后一位应该为:0");
return false;
}
break;
case 2:
if (c != "X")
{
alert("身份证号码校验位错:最后一位应该为:X");  
return false;
}
break;
case 3:
if (c != 9)
{
alert("身份证号码校验位错:最后一位应该为:9");  
return false;
}
break;
case 4:
if (c != 8)
{
alert("身份证号码校验位错:最后一位应该为:8");  
return false;
}
break;
case 5:
if (c != 7)
{
alert("身份证号码校验位错:最后一位应该为:7"); 
return false;
}
break;
case 6:
if (c != 6)
{
alert("身份证号码校验位错:最后一位应该为:6");
return false;
}
break;
case 7:
if (c != 5)
{
alert("身份证号码校验位错:最后一位应该为:5"); 
return false;
}
break;
case 8:
if (c != 4)
{
alert("身份证号码校验位错:最后一位应该为:4");  
return false;
}
break;
case 9:
if (c != 3)
{
alert("身份证号码校验位错:最后一位应该为:3"); 
return false;
}
break;
case 10:
if (c != 2)
{
alert("身份证号码校验位错:最后一位应该为:2"); 
return false
}
}
return true ;
}
 
//响应单击事件
function myclick()
{
var strinput=document.getElementById("idCard").value ;
if(CheckValue(strinput))
{
alert('输入正确!请核对您的信息:出生日期:'+birthday+'.性别:'+sex+'.出生地:'+address);
}
}
</script>
</head>
<body>
输入身份证号码:
<input name="idCard" type="text" maxlength="25" id="idCard"/>
<input name="myButton" type="button" id="myButton" onclick="myclick()" value="确定" />
</body>
</html>
Valid CSS!     Valid CSS!     Valid XHTML 1.0 Transitional     PHP     Creative Commons License