公司的統一編號和身份證號碼一樣, 都有一套公式做為檢驗, 其運算公式為:
- 假設統一編號為 A B C D E F G H
- A - G 為編號, H 為檢查碼
- A - G 個別乘上特定倍數, 若乘出來的值為二位數則將十位數和個位數相加
- A x 1
- B x 2
- C x 1
- D x 2
- E x 1
- F x 2
- G x 4
- H x 1
- 最後將所有數值加總, 被 10 整除就為正確
- 若上述演算不正確並且 G 為 7 得話, 再加上 1 被 10 整除也為正確
var cx = new Array;
cx[0] = 1;
cx[1] = 2;
cx[2] = 1;
cx[3] = 2;
cx[4] = 1;
cx[5] = 2;
cx[6] = 4;
cx[7] = 1;
function chknum(){
var NO = document.F.NUM.value;
var SUM = 0;
if (NO.length != 8) {
alert("統編錯誤,要有 8 個數字");
return;
}
var cnum = NO.split("");
for (i=0; i<=7; i++) {
if (NO.charCodeAt() < 48 || NO.charCodeAt() > 57) {
alert("統編錯誤,要有 8 個 0-9 數字組合");
return;
}
SUM += cc(cnum[i] * cx[i]);
}
if (SUM % 10 == 0) alert("統一編號:"+NO+" 正確!");
else if (cnum[6] == 7 && (SUM + 1) % 10 == 0) alert("統一編號:"+NO+" 正確!");
else alert("統一編號:"+NO+" 錯誤!");
}
function cc(n){
if (n > 9) {
var s = n + "";
n1 = s.substring(0,1) * 1;
n2 = s.substring(1,2) * 1;
n = n1 + n2;
}
return n;
}