2016-04-10 31 views
-3

Ich habe eine Aufgabe, die erfordert, dass ich bestimmte Kreditkartenformate mit regulären Ausdrücken validiere. Zum Beispiel kann eine Mastercard hat 16 Stellen, beginnt mit einem 5 und ist mit 15 Ziffern folgen, so würde der reguläre Ausdruck wie folgt:Kreditkartenformat mit regulären Ausdrücken validieren?

\b5[0-9]{15}\b 

Was würde die regulären Ausdrücke für die folgenden Kreditkarten Formate?

Diners Club: Kreditkarte hat 14 Stellen und beginnt mit entweder 301, 302, 303, 304, 305, 36 oder 38

JCB: Kreditkarte hat entweder 15 Stellen mit entweder 2131 oder 1800 beginnen, oder hat 16 Ziffern und beginnt mit 35

Danke!

Antwort

1

Dies sollte alle Basen bedecken (bereitgestellt von RegEx Buddy):

^(?: 
(?<visa>4\d{3}[ -]*\d{4}[ -]*\d{4}[ -]*\d(?:\d{3})?) | 
(?<mastercard>5[1-5]\d{2}[ -]*\d{4}[ -]*\d{4}[ -]*\d{4}) | 
(?<discover>6(?:011|5[0-9]{2})[ -]*\d{4}[ -]*\d{4}[ -]*\d{4}) | 
(?<amex>3[47]\d{2}[ -]*\d{6}[ -]*\d{5}) | 
(?<diners>3(?:0[0-5]|[68][0-9])\d[ -]*\d{6}[ -]*\d{4}) | 
(?<jcb>(?:2131|1800)[ -]*\d{6}[ -]*\d{5}|35\d{2}[ -]*\d{4}[ -]*\d{4}[ -]*\d{4}) 
)$ 
Verwandte Themen