Skip to content

Instantly share code, notes, and snippets.

@michaelkeevildown
Last active January 12, 2025 21:48
Show Gist options
  • Save michaelkeevildown/9096cd3aac9029c4e6e05588448a8841 to your computer and use it in GitHub Desktop.
Save michaelkeevildown/9096cd3aac9029c4e6e05588448a8841 to your computer and use it in GitHub Desktop.
Credit Card Regex Patterns

Credit Card Regex

  • Amex Card: ^3[47][0-9]{13}$
  • BCGlobal: ^(6541|6556)[0-9]{12}$
  • Carte Blanche Card: ^389[0-9]{11}$
  • Diners Club Card: ^3(?:0[0-5]|[68][0-9])[0-9]{11}$
  • Discover Card: ^65[4-9][0-9]{13}|64[4-9][0-9]{13}|6011[0-9]{12}|(622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])[0-9]{10})$
  • Insta Payment Card: ^63[7-9][0-9]{13}$
  • JCB Card: ^(?:2131|1800|35\d{3})\d{11}$
  • KoreanLocalCard: ^9[0-9]{15}$
  • Laser Card: ^(6304|6706|6709|6771)[0-9]{12,15}$
  • Maestro Card: ^(5018|5020|5038|5893|6304|6759|6761|6762|6763)[0-9]{8,15}$
  • Mastercard: ^5[1-5][0-9]{14}$
  • Solo Card: ^(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}$
  • Switch Card: ^(4903|4905|4911|4936|6333|6759)[0-9]{12}|(4903|4905|4911|4936|6333|6759)[0-9]{14}|(4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}$
  • Union Pay Card: ^(62[0-9]{14,17})$
  • Visa Card: ^4[0-9]{12}(?:[0-9]{3})?$
  • Visa Master Card: ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$
@exadeci
Copy link

exadeci commented May 13, 2019

Maestro Card: ^(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}$

5893 and 6762 were missing:
Maestro Card: ^(5018|5020|5038|5893|6304|6759|6761|6762|6763)[0-9]{8,15}$

@KyorCode
Copy link

KyorCode commented Dec 2, 2019

A bit out of date according to : https://en.wikipedia.org/wiki/Payment_card_number

@doggonewater672
Copy link

Depending where you want to use it, this may cover all of the above:
\b\d{13,16}\b

@Ablenceseen
Copy link

This can be effectively used in the development of payment systems. This will allow you to immediately filter out incorrectly entered data as soon as it is entered. I am currently working with the https://qbetscasino.nl/ project and I need to improve the quality of the entered data and reduce the number of errors. In addition, such solutions can be useful for verifying transactions in real time. Thank you for your structured and practical approach.

@markusfury
Copy link

A bit out of date according to : https://en.wikipedia.org/wiki/Payment_card_number

Thanks for that

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment