Aug 27, 2023
Credit Card Matcher Regex Fn
Obtain credit/debit card type based on input.
Function with regex matchers to obtain different credit/debit card types based on number input.
export function getCardType(value: string) {
// visa
const visaRegex = new RegExp("^4[0-9]{12}(?:[0-9]{3})?$");
if (value.match(visaRegex) != null) return "Visa";
// Mastercard
// Updated for Mastercard 2017 BINs expansion
const masterCardRegex = new RegExp(
"^5[1-5][0-9]{14}|^(222[1-9]|22[3-9]\d|2[3-6]\d{2}|27[0-1]\d|2720)[0-9]{12}$"
);
if (value.match(masterCardRegex) != null) return "Mastercard";
// Discover
const discoverRegex = new RegExp(
"^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65)"
);
if (value.match(discoverRegex) != null) return "Discover";
const americanExpressRegex = new RegExp("^3[47][0-9]{13}$");
if (value.match(americanExpressRegex) != null) return "American Express";
return "";
}