Skip to content

Commit 3681343

Browse files
committed
Completed the credit card validator
1 parent 5a9a703 commit 3681343

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
function validateCreditCard(cardNumber)
2+
{
3+
let sum = 0;
4+
let allSame = "";
5+
cardNumber = String(cardNumber);
6+
7+
if(cardNumber.length != 16)
8+
return false;
9+
10+
if((cardNumber.slice(-1) % 2) != 0)
11+
return false;
12+
13+
for (let i = 0; i < cardNumber.length; i++) {
14+
sum += Number(cardNumber[i]);
15+
if( cardNumber[i] < "0" || cardNumber[i] > "9" ) {
16+
return false;
17+
}
18+
}
19+
20+
for (let i = 0; i < cardNumber.length; i++) {
21+
if("0123456789".includes(cardNumber[i]) && !String(allSame).includes(cardNumber[i])) {
22+
allSame += cardNumber[i];
23+
}
24+
}
25+
if(allSame.length < 2) {
26+
return false;
27+
}
28+
29+
if(sum < 16)
30+
return false;
31+
32+
return true;
33+
}
34+
35+
console.log(validateCreditCard("9999777788880000")); // true
36+
console.log(validateCreditCard("6666666666661666")); // true
37+
console.log(validateCreditCard("a92332119c011112")); // false
38+
console.log(validateCreditCard("4444444444444444")); // false
39+
console.log(validateCreditCard("1111111111111110")); // false
40+
console.log(validateCreditCard("6666666666666661")); // false

0 commit comments

Comments
 (0)