Regex für Kreditkartennummer

Verwende /^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/, um zu prüfen, ob eine ganze Zeichenkette eine gültige Kreditkartennummer ist. Jedes Beispiel unten wurde gegen das Muster getestet, und du kannst es mit vorgeladenen Beispielen im Regex-Tester öffnen.

Aktualisiert am

/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/
Im Regex-Tester öffnen
EingabeErgebnis
4111111111111111✓ Treffer
5500000000000004✓ Treffer
378282246310005✓ Treffer
1234567812345678✗ Kein Treffer
4111 1111 1111 1111✗ Kein Treffer
411111111111111✗ Kein Treffer

So funktioniert das Muster

TeilBedeutung
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 false

Python

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.

Häufige Fragen

Wie lautet der Regex für Kreditkartennummern?
/^(?:4\d{12}(?:\d{3})?|5[1-5]\d{14}|3[47]\d{13})$/ — er passt auf die gesamte Zeichenkette. Die Tabelle oben zeigt, was jeder Teil bewirkt.
Welche Beispiele passen?
Von den getesteten Beispielen passen diese: 4111111111111111, 5500000000000004, 378282246310005. Die anderen nicht.
Wie teste ich diesen Regex?
Klicke auf „Im Regex-Tester öffnen“ – Muster, Flags und Beispieltext werden automatisch geladen, und Treffer werden beim Bearbeiten markiert.