2010-11-23 18 views
2

Ich möchte einen JavaScript-Eingabe-Schlüssel-Validator schreiben. Ich möchte zu diesem Zweck reguläre Ausdrücke verwenden. Wenn der Benutzer eine Taste drückt, wird in das Eingabetextfeld geprüft, ob sein Wert einen regulären Ausdruck erfüllt, und wenn dies nicht der Fall ist, wird die Benutzereingabe zurückgewiesen.Partielle RegExp Übereinstimmung

Ist es möglich, eine Übereinstimmung abzufangen, wenn der reguläre Ausdruck nur einem Teil des Ausdrucks entspricht?

Nur zum besseren Verständnis der Frage:
Regulärer Ausdruck: ([0-9]{3})([0-9Xx]+)

 
"" matches 
"0" matches 
"01" matches 
"01c" not matches 
"014" matches 
"0149" matches 
"0149x" matches 
"0149xD" not matches 
"0149xDX" not matches 
"0149xX" matches 

und so weiter ...

Antwort

2
^([0-9]{0,2}|[0-9]{3}[0-9Xx]*)$
+0

es ist nur ein Fall ... Ich brauche eine wiederverwendbare Lösung, die für jeden Ausdruck funktioniert – ProgramWriter

+0

Die Hauptsache hier ist, Ihren Ausdruck mit '^ (...) $' zu verankern, so dass der gesamte String immer überprüft wird . Dies funktioniert für jeden Ausdruck. Alles andere muss an die Regeln von erlaubten und nicht erlaubten Spielen angepasst werden. –

0

Warum nicht einen regulären Ausdruck für Text mit bearbeiteten und einem anderen für den endgültigen Text. Wenn Sie also angeben können, welcher Text als "halbe Eingabe" geeignet ist, können Sie eine Regex dafür beherrschen.

Verwandte Themen