jesobreira

get credit card flag from number

Jun 2nd, 2015
867
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. alert(getCreditCardLabel('4152630014102192'));
  2.  
  3. function getCreditCardLabel(cardNumber){
  4.  
  5.   // Visa: ^4[0-9]{12}(?:[0-9]{3})?$ All Visa card numbers start with a 4. New cards have 16 digits. Old cards have 13.
  6.   // MasterCard: ^5[1-5][0-9]{14}$ All MasterCard numbers start with the numbers 51 through 55. All have 16 digits.
  7.   // American Express: ^3[47][0-9]{13}$ American Express card numbers start with 34 or 37 and have 15 digits.
  8.   // Diners Club: ^3(?:0[0-5]|[68][0-9])[0-9]{11}$ Diners Club card numbers begin with 300 through 305, 36 or 38. All have 14 digits. There are Diners Club cards that begin with 5 and have 16 digits. These are a joint venture between Diners Club and MasterCard, and should be processed like a MasterCard.
  9.   // Discover: ^6(?:011|5[0-9]{2})[0-9]{12}$ Discover card numbers begin with 6011 or 65. All have 16 digits.
  10.   // JCB: ^(?:2131|1800|35\d{3})\d{11}$ JCB cards beginning with 2131 or 1800 have 15 digits. JCB cards beginning with 35 have 16 digits.
  11.   // http://www.regular-expressions.info/creditcard.html
  12.  
  13.   var regexVisa = /^4[0-9]{12}(?:[0-9]{3})?/;
  14.   var regexMaster = /^5[1-5][0-9]{14}/;
  15.   var regexAmex = /^3[47][0-9]{13}/;
  16.   var regexDiners = /^3(?:0[0-5]|[68][0-9])[0-9]{11}/;
  17.   var regexDiscover = /^6(?:011|5[0-9]{2})[0-9]{12}/;
  18.   var regexJCB = /^(?:2131|1800|35\d{3})\d{11}/;
  19.  
  20.   if(regexVisa.test(cardNumber)){
  21.    return 'visa';
  22.   }
  23.   if(regexMaster.test(cardNumber)){
  24.    return 'master';
  25.   }
  26.   if(regexAmex.test(cardNumber)){
  27.    return 'amex';
  28.   }
  29.   if(regexDiners.test(cardNumber)){
  30.    return 'diners';
  31.   }
  32.   if(regexDiscover.test(cardNumber)){
  33.    return 'discover';
  34.   }
  35.   if(regexJCB.test(cardNumber)){
  36.    return 'jcb';
  37.   }
  38.  
  39.   return '';
  40.  
  41. }
Add Comment
Please, Sign In to add comment