Odpowiedź przez @Rawing błędnie zakłada, że zakres BIN z szeregu MasterCard zostanie zmieniony na nowy zakres natomiast prawdą jest, że BIN zakres zostanie rozszerzony o w nowym zakresie.
Dlatego dla przyszłych użytkowników, którzy (na ślepo) skopiuj regex trzeba zastosować tę wersję, aby umożliwić wszystkie „ważne” numery MasterCard (z wyłączeniem Luhna-Check):
/^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}$/
albo to wersja bez pozwalając kreski pomiędzy numery:
/^5[1-5]\d{14}$|^2(?:2(?:2[1-9]|[3-9]\d)|[3-6]\d\d|7(?:[01]\d|20))\d{12}$/
Jest to w zasadzie połączenie odpowiedzi @Rawings i pytania.
Wiem, że to nie jest ściśle odpowiedź na pytanie, ale miejmy nadzieję, że zapobiegnie niektórym błędom kopiowania i wklejania w formularzach płatności.
Extended Demo
jakie są możliwości w tych liczb? – rock321987
Nie wiem, dlaczego to pytanie zostało odrzucone. – PamZy
Wydaje mi się to bardzo jasne. – Ralph