Guest User

Untitled

a guest
Feb 25th, 2018
1,448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. const cards = [
  2. {
  3. type: 'amex',
  4. pattern: /^3[47]/
  5. },
  6. {
  7. type: 'dankort',
  8. pattern: /^5019/
  9. },
  10. {
  11. type: 'hipercard',
  12. pattern: /^(384100|384140|384160|606282|637095|637568|60(?!11))/,
  13. },
  14. {
  15. type: 'dinersclub',
  16. pattern: /^(36|38|30[0-5])/
  17. },
  18. {
  19. type: 'discover',
  20. pattern: /^(6011|65|64[4-9]|622)/
  21. },
  22. {
  23. type: 'jcb',
  24. pattern: /^35/
  25. },
  26. {
  27. type: 'laser',
  28. pattern: /^(6706|6771|6709)/
  29. },
  30. {
  31. type: 'maestro',
  32. pattern: /^(5018|5020|5038|6304|6703|6708|6759|676[1-3])/
  33. },
  34. {
  35. type: 'mastercard',
  36. pattern: /^(5[1-5]|677189)|^(222[1-9]|2[3-6]\d{2}|27[0-1]\d|2720)/
  37. },
  38. {
  39. type: 'unionpay',
  40. pattern: /^62/
  41. },
  42. {
  43. type: 'visaelectron',
  44. pattern: /^4(026|17500|405|508|844|91[37])/
  45. },
  46. {
  47. type: 'elo',
  48. pattern: /^(4011(78|79)|43(1274|8935)|45(1416|7393|763(1|2))|50(4175|6699|67[0-7][0-9]|9000)|627780|63(6297|6368)|650(03([^4])|04([0-9])|05(0|1)|4(0[5-9]|3[0-9]|8[5-9]|9[0-9])|5([0-2][0-9]|3[0-8])|9([2-6][0-9]|7[0-8])|541|700|720|901)|651652|655000|655021)/
  49. },
  50. {
  51. type: 'visa',
  52. pattern: /^4/
  53. }
  54. ]
  55.  
  56. const findCardByNumber = (number) => {
  57. const num = (number + '').replace(/\D/g, '')
  58.  
  59. return cards.find(({pattern}) => pattern.test(num))
  60. }
  61.  
  62. console.log('returns amex card', findCardByNumber('378282246310005'))
  63. console.log('returns amex card', findCardByNumber('371449635398431'))
  64. console.log('returns amex card', findCardByNumber('378734493671000'))
  65. console.log('')
  66. console.log('returns dankort card', findCardByNumber('5019123456789013'))
  67. console.log('')
  68. console.log('returns dinersclub card', findCardByNumber('30569309025904'))
  69. console.log('returns dinersclub card', findCardByNumber('38520000023237'))
  70. console.log('')
  71. console.log('returns discover card', findCardByNumber('6011111111111117'))
  72. console.log('returns discover card', findCardByNumber('6011000990139424'))
  73. console.log('')
  74. console.log('returns jcb card', findCardByNumber('3530111333300000'))
  75. console.log('returns jcb card', findCardByNumber('3566002020360505'))
  76. console.log('')
  77. console.log('returns mastercard card', findCardByNumber('5555555555554444'))
  78. console.log('returns mastercard card', findCardByNumber('2221000010000015'))
  79. console.log('')
  80. console.log('returns visa card', findCardByNumber('4111111111111111'))
  81. console.log('returns visa card', findCardByNumber('4012888888881881'))
  82. console.log('returns visa card', findCardByNumber('4222222222222'))
  83. console.log('returns visa card', findCardByNumber('4000 0000 0000 0000 030'))
  84. console.log('')
  85. console.log('returns visaelectron card', findCardByNumber('4917300800000000'))
  86. console.log('')
  87. console.log('returns unionpay card', findCardByNumber('6271136264806203568'))
  88. console.log('returns unionpay card', findCardByNumber('6236265930072952775'))
  89. console.log('returns unionpay card', findCardByNumber('6204679475679144515'))
  90. console.log('returns unionpay card', findCardByNumber('6216657720782466507'))
  91. console.log('')
  92. console.log('returns mastro card', findCardByNumber('6759649826438453'))
  93. console.log('returns mastro card', findCardByNumber('6759 4111 0000 0008'))
  94. console.log('returns mastro card', findCardByNumber('6759 6498 2643 8453'))
  95. console.log('')
  96. console.log('returns hipercard card', findCardByNumber('6062821086773091'))
  97. console.log('returns hipercard card', findCardByNumber('6375683647504601'))
  98. console.log('returns hipercard card', findCardByNumber('6370957513839696'))
  99. console.log('returns hipercard card', findCardByNumber('6375688248373892'))
  100. console.log('returns hipercard card', findCardByNumber('6012135281693108'))
  101. console.log('returns hipercard card', findCardByNumber('38410036464094'))
  102. console.log('returns hipercard card', findCardByNumber('38414050328938'))
Add Comment
Please, Sign In to add comment