Skip to content

Instantly share code, notes, and snippets.

@willmcclellan
Last active August 29, 2015 14:01
Show Gist options
  • Save willmcclellan/89f75d0047f8f58baf8f to your computer and use it in GitHub Desktop.
Save willmcclellan/89f75d0047f8f58baf8f to your computer and use it in GitHub Desktop.
// http://stackoverflow.com/questions/72768/how-do-you-detect-credit-card-type-based-on-number
this.getCreditCardType = function(number) {
if (!number) {
return undefined;
};
// trim whitesapce
number = number.replace(/\s+/g, '');
// MasterCard
if (/^5[1-5][0-9]{5,}$/.test(number)) {
return 'mastercard';
}
// Visa
else if (/^4[0-9]{6,}$/.test(number)) {
return 'visa';
}
// AmEx
else if (/^3[47][0-9]{5,}$/.test(number)) {
return 'amex';
}
// Diners Club
else if (/^3(?:0[0-5]|[68][0-9])[0-9]{4,}$/.test(number)) {
return 'diners';
}
// Discover
else if (/^6(?:011|5[0-9]{2})[0-9]{3,}$/.test(number)) {
return 'discover';
}
// JCB
else if (/^(?:2131|1800|35[0-9]{3})[0-9]{3,}$/.test(number)) {
return 'jcb';
}
return undefined;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment