2016-05-20 7 views
6

Die BIN-MasterCard-Nummern der "2" -Serie beginnen im Oktober 2016. Welches Regex-Muster sollte verwendet werden, um sie zu validieren. Heute verwenden wir die unten Muster für Mastercards, die mit 5 beginnen:Welches Muster sollte verwendet werden, um 2 BIN MasterCard-Nummern zu validieren

var re = /^5[1-5]\d{2}-?\d{4}-?\d{4}-?\d{4}$/; 
+3

welche Möglichkeiten in diesen Zahlen? – rock321987

+3

Ich weiß nicht, warum diese Frage abgelehnt wurde. – PamZy

+0

Das sieht mir sehr klar. – Ralph

Antwort

15

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

+0

Das war mein erster Gedanke, als ich in der ursprünglichen Antwort keine "5" sah. Vielen Dank! – Dss

+0

@migg: arbeiten (Y) Können Sie bitte Beispiel Mastercard-Nummern für den genannten Bereich, d. H. 2221-2720, ich brauche es zum Testen? –

+0

Die Nummern in der erweiterten Demo stimmen mit der Regex überein, aber die für Kreditkartennummern erforderliche Prüfsummenvalidierung schlägt fehl. Link zu einer Demo mit gültigen Kreditkartennummern: https://regex101.com/r/cGQNpd/3 –

Verwandte Themen