身份证js验证

 

<script type="text/javascript"> 
//--身份证号码验证-支持新的带x身份证 
function isIdCardNo(num)  
{ 
    var factorArr = new Array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2,1); 
    var error; 
    var varArray = new Array(); 
    var intValue; 
    var lngProduct = 0; 
    var intCheckDigit; 
    var intStrLen = num.length; 
    var idNumber = num;     
    // initialize 
    if ((intStrLen != 15) && (intStrLen != 18)) { 
        //error = "输入身份证号码长度不对!"; 
        //alert(error); 
        //frmAddUser.txtIDCard.focus(); 
        return false; 
    }     
    // check and set value 
    for(i=0;i<intStrLen;i++) { 
        varArray[i] = idNumber.charAt(i); 
        if ((varArray[i] < '0' || varArray[i] > '9') && (i != 17)) { 
            //error = "错误的身份证号码!."; 
            //alert(error); 
            //frmAddUser.txtIDCard.focus(); 

            return false; 
        } else if (i < 17) { 
            varArray[i] = varArray[i]*factorArr[i]; 
        } 
    } 
    if (intStrLen == 18) { 
        //check date 
        var date8 = idNumber.substring(6,14); 
        if (checkDate(date8) == false) { 
            //error = "身份证中日期信息不正确!."; 
            //alert(error); 
            return false; 
        }         
        // calculate the sum of the products 
        for(i=0;i<17;i++) { 
            lngProduct = lngProduct + varArray[i]; 
        }         
        // calculate the check digit 
        intCheckDigit = 12 - lngProduct % 11; 
        switch (intCheckDigit) { 
            case 10: 
                intCheckDigit = 'X'; 
                break; 
            case 11: 
                intCheckDigit = 0; 
                break; 
            case 12: 
                intCheckDigit = 1; 
                break; 
        }         
        // check last digit 
        if (varArray[17].toUpperCase() != intCheckDigit) { 
            //error = "身份证效验位错误!...正确为: " + intCheckDigit + "."; 
            //alert(error); 
            return false; 
        } 
    }  
    else{        //length is 15 
        //check date 
        var date6 = idNumber.substring(6,12); 
        if (checkDate(date6) == false) { 
            //alert("身份证日期信息有误!."); 
            return false; 
        } 
    } 
    //alert ("Correct."); 
    return true; 
}
function checkDate(date) 
{ 
    return true; 
}  
function check()
{
 idnum = document.getElementById('idcard').value;
 alert(isIdCardNo(idnum));
  
}
</script>
posted @ 2015-01-04 17:21  良中一贝  阅读(291)  评论(0编辑  收藏  举报