Regex for Any Credit Card
Regex Pattern
^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11})$Visa, Mastercard, Amex, Discover, Diners
Quick Answer
The regex pattern for any credit card is `^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11})$`. Visa, Mastercard, Amex, Discover, Diners. This works in JavaScript, Python, Ruby, PHP, Java, and most regex engines that support PCRE syntax.
Test Examples
| Input | Result |
|---|---|
| 4111111111111111 | ✓ Matches |
| 5555555555554444 | ✓ Matches |
| 378282246310005 | ✓ Matches |
| 6011111111111117 | ✓ Matches |
| 1234567890123456 | ✗ No match |
| 0000000000000000 | ✗ No match |
Code Examples
javascript
const regex = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11})$/;
const isValid = regex.test(value);python
import re
pattern = r'^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11})$'
if re.match(pattern, value):
print("valid")ruby
pattern = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11})$/
if value =~ pattern
puts "valid"
endphp
if (preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11})$/', $value)) {
echo "valid";
}java
String pattern = "^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11})$";
boolean isValid = value.matches(pattern);Frequently Asked Questions
Related Regex Patterns
Visa Credit Card
Visa card — starts with 4, 13 or 16 digits total
Mastercard Credit Card
Mastercard — 16 digits starting with 51-55 or 2221-2720
American Express Card
Amex — 15 digits starting with 34 or 37
Discover Credit Card
Discover card — starts with 6011 or 65, 16 digits total
Diners Club Credit Card
Diners Club card — starts with 300-305, 36, or 38, 14 digits total
JCB Credit Card
JCB card — starts with 3528-3589, 16 digits total