JSFiddle - React, Tailwind, and code Playground
by shivaay123
JavaScript
const validCreditcard = cardnumb => {
const ccErrors = [];
ccErrors[0] = "Unknown card type";
ccErrors[1] = "No card number provided";
ccErrors[2] = "Credit card number is in invalid format";
ccErrors[3] = "Credit card number is invalid";
ccErrors[4] = "Credit card number has an inappropriate number of digits";
ccErrors[5] = "Warning! This credit card number is associated with a scam attempt";
const response = (success, message = null, type = null) => ({
message,
success,
type
});
const validCardnumb = numb => {
const regex = new RegExp("^[0-9]{13,19}$");
if (!regex.test(numb)) {
return false;
}
return luhnCheck(numb);
}
const luhnCheck = val => {
let validsum = 0;
let k = 1;
for (let l = val.length - 1; l >= 0; l--) {
let calck = 0;
calck = Number(val.charAt(l)) * k;
if (calck > 9) {
validsum = validsum + 1;
calck = calck - 10;
}
validsum = validsum + calck;
if (k == 1) {
k = 2;
} else {
k = 1;
}
}
return (validsum % 10) == 0;
}
const cards = [];
cards[0] = {
name: "Visa",
length: "13,16",
prefixes: "4",
checkdigit: true
};
cards[1] = {
name: "MasterCard",
length: "16",
prefixes: "51,52,53,54,55",
checkdigit: true
};
cards[2] = {
name: "DinersClub",
length: "14,16",
prefixes: "36,38,54,55",
checkdigit: true
};
cards[3] = {
name: "CarteBlanche",
length: "14",
prefixes: "300,301,302,303,304,305",
checkdigit: true
};
cards[4] = {
name: "AmEx",
length: "15",
prefixes: "34,37",
checkdigit: true
};
cards[5] = {
name: "Discover",
length: "16",
prefixes: "6011,622,64,65",
checkdigit: true
};
cards[6] = {
name: "JCB",
length:...