[转] 一个简单的身份证验证

function validate(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; 
    
if ((intStrLen != 15&& (intStrLen != 18)) {
        
return false;
    }
    
    
for(i=0;i<intStrLen;i++{
        varArray[i] 
= idNumber.charAt(i);
        
if ((varArray[i] < '0' || varArray[i] > '9'&& (i != 17)) {
            
return false;
        }
 else if (i < 17{
            varArray[i] 
= varArray[i]*factorArr[i];
        }

    }

    
    
if (intStrLen == 18{
        
var date8 = idNumber.substring(6,14);
        
if (checkDate(date8) == false{
            
return false;
        }
        
        
for(i=0;i<17;i++{
            lngProduct 
= lngProduct + varArray[i];
        }
        
        intCheckDigit 
= 12 - lngProduct % 11;
        
switch (intCheckDigit) {
            
case 10:
                intCheckDigit 
= 'X';
                
break;
            
case 11:
                intCheckDigit 
= 0;
                
break;
            
case 12:
                intCheckDigit 
= 1;
                
break;
        }
        
        
if (varArray[17].toUpperCase() != intCheckDigit) {
            
return false;
        }

    }
 
    
else{        

        
var date6 = idNumber.substring(6,12);
        
if (checkDate(date6) == false{
            
            
return false;
        }

    }

    
return true;
}

function checkDate(date)
{
    
return true;
}

posted on 2009-05-25 15:49  5201314  阅读(326)  评论(0编辑  收藏  举报

导航