UK Bankleitzahl Javascript regulärer Ausdruck

8

Ich versuche, einen regulären Ausdruck in Javascript für eine britische Bankleitzahl zu erstellen, so dass der Benutzer 6 Ziffern oder 6 Ziffern mit einem Bindestrich zwischen Paaren eingeben kann. Zum Beispiel "123456" oder "12-34-56". Außerdem können nicht alle Ziffern 0 sein. Bis jetzt habe ich /(?!0{2}(-?0{2}){2})(\d{2}(-\d{2}){2})|(\d{6})/ und dieses jsFiddle zu testen.

Dies ist mein erster regulärer Ausdruck, also bin ich mir nicht sicher, ob ich es richtig mache. Der Test für 6 0-Ziffern sollte fehlschlagen, und ich dachte, dass der optionale Bindestrich -? in der Lookahead es als 6 0-Ziffern mit Bindestrichen behandeln würde, aber es ist nicht. Ich würde etwas Hilfe und Kritik schätzen, wenn ich es völlig falsch mache!

    
NickL 05.07.2012, 09:58
quelle

2 Antworten

8

Nur um Ihre Frage zu beantworten, können Sie Benutzereingaben mit:

validieren %Vor%

Es stimmt nur die Eingabe in der Form XX-XX-XX oder XXXXXX überein, wobei X Ziffern sind, und wird ausgeschlossen 00-00-00 , 000000 zusammen mit anderen Fällen (zB XX-XXXX oder XXXX-XX ).

Wie ich jedoch in anderen Kommentaren festgestellt habe, ist es meines Erachtens noch besser, wenn Sie den Benutzer zwingen, entweder immer den Bindestrich einzugeben oder gar keinen. Besonders streng zu sein, wenn es um etwas geht, was mit Geld zu tun hat, rettet (unbekannte) Probleme später.

    
nhahtdh 05.07.2012, 10:17
quelle
4

Da jede der Ziffern Null sein kann, aber nicht alle auf einmal, sollten Sie den einen Fall, in dem sie alle null sind, als einen einzelnen Sonderfall behandeln.

Sie prüfen zwei Ziffern ( \d{2} ), dann einen optionalen Bindestrich ( -? ), dann noch zwei Ziffern ( \d{2} ) und einen weiteren optionalen Bindestrich ( -? ), vor zwei weiteren Ziffern ( \d{2} ).

Wenn Sie dies zusammenfügen, erhalten Sie \d{2}-?\d{2}-?\d{2} , aber Sie können dies weiter vereinfachen:

%Vor%

Sie verwenden dann den folgenden Pseudocode, um das Format anzupassen, aber nicht 000000 oder 00-00-00 :

%Vor%

Vielleicht möchten Sie die String-Anker ^ (start) und $ (end) hinzufügen, um die gesamte Zeichenfolge zu überprüfen.

    
Scott Stevens 05.07.2012 10:12
quelle

Tags und Links