2008年4月30日 星期三

[Javascript] 檢查身份證號碼

//檢查身份證號 0為正確的
function ID_Check(str) {
str = str.toUpperCase();
if(str.length!=10) {
return -1;
}
var list = str.split("");
var x1=0;
var x2=0;
switch(list[0]) {
case 'A': x1=1; x2=0; break;
case 'B': x1=1; x2=1; break;
case 'C': x1=1; x2=2; break;
case 'D': x1=1; x2=3; break;
case 'E': x1=1; x2=4; break;
case 'F': x1=1; x2=5; break;
case 'G': x1=1; x2=6; break;
case 'H': x1=1; x2=7; break;
case 'I': x1=3; x2=4; break;
case 'J': x1=1; x2=8; break;
case 'K': x1=1; x2=9; break;
case 'L': x1=2; x2=0; break;
case 'M': x1=2; x2=1; break;
case 'N': x1=2; x2=2; break;
case 'O': x1=3; x2=5; break;
case 'P': x1=2; x2=3; break;
case 'Q': x1=2; x2=4; break;
case 'R': x1=2; x2=5; break;
case 'S': x1=2; x2=6; break;
case 'T': x1=2; x2=7; break;
case 'U': x1=2; x2=8; break;
case 'V': x1=2; x2=9; break;
case 'W': x1=3; x2=2; break;
case 'X': x1=3; x2=0; break;
case 'Y': x1=3; x2=1; break;
case 'Z': x1=3; x2=3; break;
default: return -1;
}
for(var i=1; i<10; ++i) {
list[i] = parseInt(list[i]);
}
var checkCode = x1 + x2*9 + list[1]*8 + list[2]*7 + list[3]*6 + list[4]*5 + list[5]*4 + list[6]*3 + list[7]*2 + list[8] + list[9];
var chk = checkCode.toString().substring(checkCode.toString().length-1,checkCode.toString().length);
return chk;
}

沒有留言: