So funktioniert das Muster
| Teil | Bedeutung |
|---|---|
4\d{12}(?:\d{3})? | Visa: beginnt mit 4, 13 oder 16 Ziffern |
5[1-5]\d{14} | Mastercard: 51–55, 16 Ziffern |
3[47]\d{13} | American Express: 34 oder 37, 15 Ziffern |
Code-Beispiele
JavaScript
const re = /^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/;
re.test(value); // true or falsePython
import re
bool(re.fullmatch(r'(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})', value))PHP
preg_match('/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/', $value) === 1;
Hinweise und Einschränkungen
Entferne vor dem Test Leerzeichen und Bindestriche und prüfe danach die Luhn-Prüfsumme – der Regex prüft nur das Format. Mastercard vergibt außerdem Nummern von 2221–2720; ergänze |2(?:2[2-9]|[3-6]\d|7[01]|720)\d{12}, um auch diese abzudecken. Speichere oder protokolliere niemals echte Kartennummern. Die Beispiele sind gängige Testnummern.
Regex-Tester
Gib ein Muster ein und sieh zu, wie Übereinstimmungen in deinem Testtext in Echtzeit hervorgehoben werden.