剛好工作上有用到,所以找了一下公式,寫了檢驗的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>