營利事業統一編號邏輯檢查

Home Home
引用 | 編輯 keigo
2005-06-05 06:19
樓主
推文 x0
剛好工作上有用到,所以找了一下公式,寫了檢驗的script

(一) 長度:共八位,,全部為數字型態。

(二) 計算公式

1、各數字分別乘以 1,2,1,2,1,2,4,1。
2、當第 7 位數為 7 者,可取相加之倒數第二位取 0 及 1 來計算其和。
3、假如其和能被 10 整除,則表示營利事業統一編號正確

下面這是檢驗的script語法
複製程式
<script>
       function checkTB(sid){
              var tbNum = new Array(1,2,1,2,1,2,4,1);
              var temp = 0;
              var total = 0;
              if(sid=="") alert("請先輸入欲檢驗的營利事業統一編號!");
              else if(!sid.match(/^d{8}$/)) alert("營利事業統一編號長度不夠或格式有誤!請注意營利事業統一編號格式為八碼數字!");
              else{
                     for(var i = 0; i < tbNum.length ;i ++){
                            temp = sid.charAt(i) * tbNum[i];
                            total += Math.floor(temp/10)+temp%10;
                     }
                     if(total%10==0 || (total%10==9 && sid.charAt(6)==7)) alert("營利事業統一編號正確!");
                     else alert("營利事業統一編號錯誤!");
              }
       }
</script>


下面這是簡易的網頁,有興趣的自行存成HTML檔
正確的營利事業統一編號00238778
複製程式
<script>
       function checkTB(sid){
              var tbNum = new Array(1,2,1,2,1,2,4,1);
              var temp = 0;
              var total = 0;
              if(sid=="") alert("請先輸入欲檢驗的營利事業統一編號!");
              else if(!sid.match(/^d{8}$/)) alert("營利事業統一編號長度不夠或格式有誤!請注意營利事業統一編號格式為八碼數字!");
              else{
                     for(var i = 0; i < tbNum.length ;i ++){
                            temp = sid.charAt(i) * tbNum[i];
                            total += Math.floor(temp/10)+temp%10;
                     }
                     if(total%10==0 || (total%10==9 && sid.charAt(6)==7)) alert("營利事業統一編號正確!");
                     else alert("營利事業統一編號錯誤!");
              }
       }
</script>
<FORM METHOD=POST ACTION="">
<INPUT TYPE="text" NAME="TB"> <INPUT TYPE="button" onclick="checkTB(TB.value);" value="檢驗統編">
</FORM>


獻花 x0
引用 | 編輯 t1234140
2006-11-27 15:09
1樓
  
這段程式碼有錯誤吧?不管輸入正確的還是錯誤的,甚至 keigo 提供的 00238778 都顯示格式錯誤啊!

獻花 x0
引用 | 編輯 herolin
2008-11-07 15:44
2樓
  
上面的是那行
else if(!sid.match(/^d{8}$/)) alert("營利事業統一編號長度不夠或格式有誤!請注意營利事業統一編號格式為八碼數字!");
可能是貼上來不支援這個字元,  要把 (/^d{8}$/))   換成 (/^  \d{8}$/))   \請自行變成半型
其它相關驗證請看我的文章
http://herolin.mine.nu/entry/is-valid-TW-company-ID

獻花 x0
引用 | 編輯 lapklaman
2010-03-05 17:33
3樓
  
謝謝大大的分享

獻花 x0