function luhnCheckDigit(mynum)
{
var sum = 0;
var validChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVYWXZ_";
mynum = mynum.toUpperCase().replace(/^\s+|\s+$/g, '');
for (var i = 0; i < mynum.length; i++)
{
var ch = mynum.charAt(mynum.length - i - 1);
if (validChars.indexOf(ch) < 0)
{
WScript.echo("Invalid character(s) found!");
return false;
}
var digit = ch.charCodeAt(0) - 48;
var weight;
if (i % 2 == 0)
weight = (2 * digit) - parseInt(digit / 5) * 9;
else
weight = digit;
sum += weight;
}
sum = Math.abs(sum) + 10;
var digit = (10 - (sum % 10)) % 10;
return digit;
}
Comments