Skip to content

Instantly share code, notes, and snippets.

@alexpvieira
Created April 2, 2018 13:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alexpvieira/f05401e027dbcc9b10fb0d6a981583dd to your computer and use it in GitHub Desktop.
Save alexpvieira/f05401e027dbcc9b10fb0d6a981583dd to your computer and use it in GitHub Desktop.
Validate Credit Card
export default function validateCard(card) {
if (/[^0-9-\s]+/.test(card)) return false
var nCheck = 0, nDigit = 0, bEven = false
card = card.replace(/\D/g, "")
for (var n = card.length - 1; n >= 0; n--) {
var cDigit = card.charAt(n),
nDigit = parseInt(cDigit, 10)
if (bEven) {
if ((nDigit *= 2) > 9) nDigit -= 9
}
nCheck += nDigit
bEven = !bEven
}
return (nCheck % 10) == 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment