Christian S.: "Intelligente" TextBox

Hi,

ich möchte die Eingabe einer TextBox durch einen regulären Ausdruck kontrollieren und vereinfachen (autovervollständigung).

dazu dachte ich kann man dem keypress (und evtl. auch dem keyup) event einen regulären ausdruck mitgeben.

Es darf/soll nur Text entsprechend dieses Ausdrucks eingeben werden können.

Weiterhin dachte ich, dass fixe Zeichen im RegEx automatisch vervollständigt werden.

also einfaches Beispiel:

RegEx ist etwa so:
/[0-9]{4}-[a-z]{1,2}-[0-3]{1}/

also man soll zuerst nur 4 Zahlen eingeben können. wurde die 4te Zahl eingegeben, soll automatisch ein Bindestrich hinzugefügt werden. Dann ist nur noch die Eingabe von a-z erlaubt. Wurde der 2te Buchstabe eingeben, kommt wieder automatisch ein Bindestrich. Dann soll man noch eine Ziffer eingeben können von 0-3. Dann nichts mehr.

Das ganze soll natürlich möglichst auf jeden RegEx anwendbar sein.

Idee war, dass man den RegEx wiederrum mit einem Regex parst und die {4} zB erkennt oder die Zeichenklassen innerhalb [], sowie die fixen Zeichen.

Das ganze erscheint mir jedoch sehr kompliziert. Obwohl es möglich erscheint... Und daher denke ich, dass es doch sicher schon mal jemand gemacht hat... Kennt jmd sowas? Oder schonmal so was gesehen?

Gruß
Christian

  1. Ich hab sowas bisher nur für Eingabefelder für ausschließlich Zahlen gesehn. In JS kenn ich micht aus, aber vielleicht kannst du ja wie in Delphi beim onKeyPress()-Event die gedrückte Taste abfangen und zur Not einfach blocken. Je nach Länge des Strings kannst du die Bedinungen ändern. Wie folgender Pseudocode:

    if not (Key in [1-9] AND string.lenght <= 4){
       unset(Key);
    }elseif not (Key in [a-Z] AND string.length <= 7){
       unset(Key);
    }elseif (string.length in [4,6]){
       Key = "-";

    Ich hoffe ich hab mich nicht verrannt, aber das Prinzip sollte klar geworden sein. Viel Glück ;)