<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script type="text/javascript">
function checkId(pid){
//检查身份证号码 Go_Rush(阿舜) from http://ashun.cnblogs.com
alert(pid);
return false;    var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];
    var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
    var Checker = [1,9,8,7,6,5,4,3,2,1,1];
if(pId.length != 15 && pId.length != 18)
{  alert('身份证号共有 15 码或18位');
return false;}    var Ai=pId.length==18 ?  pId.substring(0,17)  :  pId.slice(0,6)+"19"+pId.slice(6,16);    if (!/^\d+$/.test(Ai)) {
return "身份证除最后一位外,必须为数字!";
}    var yyyy=Ai.slice(6,10) ,  mm=Ai.slice(10,12)-1  ,  dd=Ai.slice(12,14);    var d=new Date(yyyy,mm,dd) ,  now=new Date();
    var year=d.getFullYear() ,  mon=d.getMonth() , day=d.getDate();    if (year!=yyyy || mon!=mm || day!=dd || d>now || year <1940){
return "身份证输入错误!";
}
    for(var i=0,ret=0;i <17;i++)  ret+=Ai.charAt(i)*Wi[i];   
    Ai+=arrVerifyCode[ret %=11];       return pId.length ==18 && pId != Ai?"身份证输入错误!":Ai;       
}
</script> 
</head><body>
<input type="text" id="sfzh"> <input type="button" value="验证" onClick="checkId(document.getElementById('sfzh').value)" /> 
</body>
</html>

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript">
    function checkId(pId){
    //检查身份证号码 Go_Rush(阿舜) from http://ashun.cnblogs.com    var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];
        var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
        var Checker = [1,9,8,7,6,5,4,3,2,1,1];
    if(pId.length != 15 && pId.length != 18)
    {  alert('身份证号共有 15 码或18位');
    return false;}    var Ai=pId.length==18 ?  pId.substring(0,17)  :  pId.slice(0,6)+"19"+pId.slice(6,16);    if (!/^\d+$/.test(Ai)) {
    return "身份证除最后一位外,必须为数字!";
    }    var yyyy=Ai.slice(6,10) ,  mm=Ai.slice(10,12)-1  ,  dd=Ai.slice(12,14);    var d=new Date(yyyy,mm,dd) ,  now=new Date();
        var year=d.getFullYear() ,  mon=d.getMonth() , day=d.getDate();    if (year!=yyyy || mon!=mm || day!=dd || d>now || year <1940){
    return "身份证输入错误!";
    }
        for(var i=0,ret=0;i <17;i++)  ret+=Ai.charAt(i)*Wi[i];   
        Ai+=arrVerifyCode[ret %=11];       return pId.length ==18 && pId != Ai?"身份证输入错误!":Ai;       
    }
    </script> 
    </head><body>
    <input type="text" id="sfzh"> <input type="button" value="验证" onClick="checkId(document.getElementById('sfzh').value)" /> 
    </body>
    </html>1楼发的有问题,用这个
      

  2.   

    function checkId(pId){
    //检查身份证号码 Go_Rush(阿舜) from http://ashun.cnblogs.com
        var arrVerifyCode = [1,0,"x",9,8,7,6,5,4,3,2];
        var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
        var Checker = [1,9,8,7,6,5,4,3,2,1,1];
    if(pId.length != 15 && pId.length != 18)
    { alert("身份证只能是15位或者18位!");
    return false;}    var Ai=pId.length==18 ?  pId.substring(0,17)  :  pId.slice(0,6)+"19"+pId.slice(6,16);    if (!/^\d+$/.test(Ai)) {
    alert("身份证除最后一位外,必须为数字!");
    return false;
    }    var yyyy=Ai.slice(6,10) ,  mm=Ai.slice(10,12)-1  ,  dd=Ai.slice(12,14);    var d=new Date(yyyy,mm,dd) ,  now=new Date();
        var year=d.getFullYear() ,  mon=d.getMonth() , day=d.getDate();    if (year!=yyyy || mon!=mm || day!=dd || d>now || year <1940){
    alert( "身份证日期输入错误!");
    return false;
    }
        for(var i=0,ret=0;i <17;i++)  ret+=Ai.charAt(i)*Wi[i];   
        Ai+=arrVerifyCode[ret %=11];       pId.length ==18 && pId != Ai?alert( "身份证输入错误!");return false:Ai;      
    }
    提示缺少分号
      

  3.   

    return pId.length ==18 && pId != Ai?alert("身份证输入错误!");return false;:Ai; 
    这样写正确吗?
      

  4.   

    return pId.length ==18 && pId != Ai?alert("身份证输入错误!");:Ai;