Javascript實現身份證號碼15位轉18位的演算法
改後的程式如下:
<SCRIPT LANGUAGE="JavaScript">
<!--
var lastNumber;
var id = "輸入15位身份證號碼"; //15位身份證號碼
//這裡最好還加上身份證號碼的檢查(略)
//取得前面17位號碼
var zone=id.substring(0,6);
var year="19" + id.substring(6,8);
var mdo=id.substring(8,15);
id = zone + year + mdo;
//取得最後的檢驗碼
var getNum=eval(id.charAt(0)*7+id.charAt(1)*9+id.charAt(2)*10+id.charAt(3)*5+id.charAt(4)*8+id.charAt(5)*4+id.charAt(6)*2+id.charAt(7)*1+id.charAt(8)*6+id.charAt(9)*3+id.charAt(10)*7+id.charAt(11)*9+id.charAt(12)*10+id.charAt(13)*5+id.charAt(14)*8+id.charAt(15)*4+id.charAt(16)*2);
getNum=getNum%11;
switch (getNum) {
case 0 :
lastNumber="1";
break;
case 1 :
lastNumber="0";
break;
case 2 :
lastNumber="X";
break;
case 3 :
lastNumber="9";
break;
case 4 :
lastNumber="8";
break;
case 5 :
lastNumber="7";
break;
case 6 :
lastNumber="6";
break;
case 7 :
lastNumber="5";
break;
case 8 :
lastNumber="4";
break;
case 9 :
lastNumber="3";
break;
case 10 :
lastNumber="2";
break;
}
//document.write(lastNumber);
all = id + lastNumber;
document.write(all);
//-->
</SCRIPT>
OK。
相關連結: