Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Creditcard verification with regex?

What is the right way to verify a credit card with a regex? If which one to use there are tons online. If not how to verify?

like image 362
level20dm Avatar asked Sep 22 '09 23:09

level20dm


3 Answers

See this link Finding or Verifying Credit Card Numbers with Regulars Expressions

  • 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.
  • MasterCard: ^5[1-5][0-9]{14}$ All MasterCard numbers start with the numbers 51 through 55. All have 16 digits.
  • American Express: ^3[47][0-9]{13}$ American Express card numbers start with 34 or 37 and have 15 digits.
  • 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.
  • Discover: ^6(?:011|5[0-9]{2})[0-9]{12}$ Discover card numbers begin with 6011 or 65. All have 16 digits.
  • 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.

Bye.

like image 130
RRUZ Avatar answered Oct 08 '22 17:10

RRUZ


How can I use credit card numbers containing spaces? covers everything you should need.

like image 31
cletus Avatar answered Oct 08 '22 17:10

cletus


I think you're looking for the Luhn Algorithm. It's a simple checksum formula used to validate a variety of identification numbers.

like image 23
csharptest.net Avatar answered Oct 08 '22 15:10

csharptest.net