JavaFX Textfeld Eingabe validieren

Dionysos

Mitglied
Guten Tag

Arbeite gerade mit dem Scene Builder an einer Applikation um in einer Datenbank nach Daten zu suchen und sie anzuzeigen. In einem Textfeld kann ich nun eine Identnummer eingeben. Diese soll im Format "####.###.[A-Z].##" eingegeben werden. Sonst ist sie nicht gültig und eine Fehlermeldung erscheint.

Wie kann ich die Eingabe auf dieses Format prüfen? Google hat mir ein paar Dinge mit formatter geliefert. Bin aber nicht wirklich schlau daraus geworden.

Besten Dank für die Hilfe
 
Vielen Dank das funktioniert so! hab das mit den regex und patterns gar nicht gekannt bis jetzt.

sieht dann so aus in meinem Fall:

Java:
 Pattern p = Pattern.compile("\\d\\d\\d\\p{Punct}\\d\\d\\d\\p{Punct}\\p{Upper}\\p{Punct}\\d\\d");
        Matcher m = p.matcher(identField.getText());
        boolean b = m.matches();
 
nun hab ich noch ein weiteres problem:
Ich soll ja nach der Identnummer suchen können, heisst ich möchte z.b 5344.2* eingeben und dann soll er mir via SQL Abfrage alle diese Nummern holen. Wie kann ich die Zahl trotzdem so prüfen?
 
Besten Dank. Hab für die Eingabe nun immer einen separaten regex definiert

Java:
Pattern ident = Pattern.compile("\\d\\d\\d\\d\\p{Punct}\\d\\d\\d\\p{Punct}\\p{Upper}\\p{Punct}\\d\\d||\\*||\\d\\*||\\d\\d\\d\\*"
            + "||\\d\\d\\*||\\d\\d\\d\\d\\p{Punct}\\*||\\d\\d\\d\\d\\p{Punct}\\d\\*||\\d\\d\\d\\d\\p{Punct}\\d\\d\\*"
            + "||\\d\\d\\d\\d\\p{Punct}\\d\\d\\d\\p{Punct}\\*||\\d\\d\\d\\d\\p{Punct}\\d\\d\\d\\p{Punct}\\p{Upper}\\p{Punct}\\*");

        Matcher m = ident.matcher(identField.getText());
        boolean b = m.matches();
        System.out.println(b);

        if (!b)

        {

            errorMessage += "No valid ident number! Use the format ####.###.[A-Z].## \n";
            // identnummer zu lang oder falsch

        }
 

Neue Themen


Zurück
Oben