mnakos icon

Calculate luhnCheckDigit

mnakos | PRO | 09/09/15 10:00:45 AM UTC | 0 ⭐ | 304 👁️ | Never ⏰ | []
JavaScript |

630 B

|

None

|

0 👍

/

0 👎

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