Sometimes, we want to validate a credit card number with JavaScript.
In this article, we’ll look at how to validate a credit card number with JavaScript.
How to validate a credit card number with JavaScript?
To validate a credit card number with JavaScript, we can use the Lyhn algorithm.
For instance, we write:
const checkLuhn = (cardNo) => {
let s = 0;
let doubleDigit = false;
for (const d of [...cardNo].reverse()) {
let digit = +d;
if (doubleDigit) {
digit *= 2;
if (digit > 9)
digit -= 9;
}
s += digit;
doubleDigit = !doubleDigit;
}
return s % 10 === 0;
}
console.log(checkLuhn('4242424242424242'))
console.log(checkLuhn('8242424242424242'))
to define the checkLuhn
function that uses the Luhn algorithm to check if cardNo
is a credit card number.
The steps in the algorithm are:
- If the number already contains the check digit, drop that digit to form the “payload.” The check digit is most often the last digit.
- With the payload, start from the rightmost digit. Moving left, double the value of every second digit (including the rightmost digit).
- Sum the digits of the resulting value in each position.
- Sum the resulting values from all position
s
.
Steps 2 to 4 are done with
for (const d of [...cardNo].reverse()) {
let digit = +d;
if (doubleDigit) {
digit *= 2;
if (digit > 9)
digit -= 9;
}
s += digit;
doubleDigit = !doubleDigit;
}
- The check digit is calculated by
s % 10 === 0
.
Therefore, the first console log logs true
and the 2nd logs false
.
Conclusion
To validate a credit card number with JavaScript, we can use the Lyhn algorithm.