Skip to content

Instantly share code, notes, and snippets.

@oPorks
Forked from ShirtlessKirk/luhn.js
Created July 28, 2014 14:08
Show Gist options
  • Save oPorks/50132fe55221ceda4c2a to your computer and use it in GitHub Desktop.
Save oPorks/50132fe55221ceda4c2a to your computer and use it in GitHub Desktop.
/**
* Variant of Avraham Plotnitzky's String.prototype method mixed with the "fast" version
* see: https://sites.google.com/site/abapexamples/javascript/luhn-validation
* @author ShirtlessKirk. Copyright (c) 2012.
* Licensed under WTFPL (http://www.wtfpl.net/txt/copying)
*/
function luhnChk(luhn) {
var len = luhn.length,
mul = 0,
prodArr = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [0, 2, 4, 6, 8, 1, 3, 5, 7, 9]],
sum = 0;
while (len--) {
sum += prodArr[mul][parseInt(luhn.charAt(len), 10)];
mul ^= 1;
}
return sum % 10 === 0 && sum > 0;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment