Die Antwort von @Rawing nimmt fälschlicherweise an, dass der IST Bereich einer Mastercard-Nummer wird auf den neuen Bereich geändert werden, während es richtig ist, dass die SIND Bereich wird erweitert durch die neue Palette sein.
daher für zukünftige Besucher, dass (blind) kopieren Sie die regex Sie diese Version verwenden, sollten alle „gültig“ Mastercard Zahlen (ohne Luhn-Check) zu ermöglichen:
/^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$|^2(?:2(?:2[1-9]|[3-9]\d)|[3-6]\d\d|7(?:[01]\d|20))-?\d{4}-?\d{4}-?\d{4}$/
Oder diese Version ohne Bindestriche zwischen die erlaubt Zahlen:
/^5[1-5]\d{14}$|^2(?:2(?:2[1-9]|[3-9]\d)|[3-6]\d\d|7(?:[01]\d|20))\d{12}$/
Dies ist im Grunde eine Kombination aus @Rawings Antwort und der Frage.
Ich weiß, dass dies die Frage nicht strikt beantwortet, aber hoffentlich einige Copy-Paste Bugs in Zahlungsformularen verhindern wird.
Extended Demo
welche Möglichkeiten in diesen Zahlen? – rock321987
Ich weiß nicht, warum diese Frage abgelehnt wurde. – PamZy
Das sieht mir sehr klar. – Ralph