Skip to content

Instantly share code, notes, and snippets.

@miroswd
Last active January 19, 2023 19:28
Show Gist options
  • Save miroswd/5be72a39c8c88b58b57a0708c5002dc5 to your computer and use it in GitHub Desktop.
Save miroswd/5be72a39c8c88b58b57a0708c5002dc5 to your computer and use it in GitHub Desktop.
get flag credit card using js | flag credit card regex | bandeira de cartão de crédito regex js
const flags = {
visa: /^4\d{12}(\d{3})?$/gm,
mastercard: /^(5[1-5]\d{4}|677189)\d{10}$/gm,
diners: /^3(0[0-5]|[68]\d)\d{11}$/gm,
discover: /^6(?:011|5[0-9]{2})[0-9]{12}$/gm,
elo:/^(?:401178|401179|431274|438935|451416|457393|457631|457632|504175|627780|636297|636368|655000|655001|651652|651653|651654|650485|650486|650487|650488|506699|5067[0-6][0-9]|50677[0-8]|509\d{3})\d{10}$/gm,
amex: /^3[47]\d{13}$/gm,
jcb:/^(?:2131|1800|35\d{3})\d{11}$/gm,
aura: /^(5078\d{2})(\d{2})(\d{11})$/gm,
hipercard:/^(606282\d{10}(\d{3})?)|(3841\d{15})$/gm,
maestro: /^(?:5[0678]\d\d|6304|6390|67\d\d)\d{8,15}$/gm,
}
/**
* @param {String} creditCard
* @returns {String|boolean}
*/
const getFlag = (creditCard) => {
for (const flag in flags) {
const creditCardFormatted = creditCard.replace(/\s/gm,'');
if (creditCardFormatted.match(flags[flag])) return flag;
}
return false;
}
getFlag("5179 0592 0171 2726") // -> return mastercard
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment