2007年11月10日

利用JavaScript驗證統一編號是否正確(台灣)

先前曾發表過一個"利用VB.NET驗證統一編號是否正確(台灣)"
這裡再補上一個JavaScript版本的。

//To Validate Tax ID
function ValidateTaxID(sTaxID)
{
try
{
var i;
var a1;
var a2;
var a3;
var a4;
var a5;

var b1;
var b2;
var b3;
var b4;
var b5;

var c1;
var c2;
var c3;
var c4;

var d1;
var d2;
var d3;
var d4;
var d5;
var d6;
var d7;
var cd8;

if(sTaxID.length != 8) return false;

var c;
for (i = 0; i < 8; i++)
{
c = sTaxID.charAt(i);
if ("0123456789".indexOf(c) == -1) return false;
}

d1 = parseInt(sTaxID.charAt(0));
d2 = parseInt(sTaxID.charAt(1));
d3 = parseInt(sTaxID.charAt(2));
d4 = parseInt(sTaxID.charAt(3));
d5 = parseInt(sTaxID.charAt(4));
d6 = parseInt(sTaxID.charAt(5));
d7 = parseInt(sTaxID.charAt(6));
cd8 = parseInt(sTaxID.charAt(7));

c1 = d1;
c2 = d3;
c3 = d5;
c4 = cd8;

a1 = parseInt((d2 * 2) / 10);
b1 = (d2 * 2) % 10;

a2 = parseInt((d4 * 2) / 10);
b2 = (d4 * 2) % 10;

a3 = parseInt((d6 * 2) / 10);
b3 = (d6 * 2) % 10;

a4 = parseInt((d7 * 4) / 10);
b4 = (d7 * 4) % 10;

a5 = parseInt((a4 + b4) / 10);
b5 = (a4 + b4) % 10;

if((a1 + b1 + c1 + a2 + b2 + c2 + a3 + b3 + c3 + a4 + b4 + c4) % 10 == 0) return true;

if(d7 = 7)
{
if((a1 + b1 + c1 + a2 + b2 + c2 + a3 + b3 + c3 + a5 + c4) % 10 == 0) return true;
}

return false;
}catch(e){
return false;
}
}

沒有留言:

張貼留言