Textbox per Regex überprüfen

JavaFX und die Programmierung

Moderator: wegus

Antworten
AndyK
Beiträge: 7
Registriert: 18.11.2010, 14:42
Wohnort: Baden

Textbox per Regex überprüfen

Beitrag von AndyK » 18.11.2010, 14:52

Hallo zusammen,

ich habe vor kurzen mit javaFx angefangen nachdem ich in meiner Ausbildung Java an der Schule "gelernt" habe, dachte ich wird schon klappen.
Bei meinem Projekt bin ich auch schoni recht weit gekommen. Nur habe ich nun folgendes Problem und zwar möchte ich den Text einer Textbox auf Buchstaben und Zeichen überprüfen.
Spricht es sind nur Zahlen erlaubt.
Nach eingängiger Internetrecherche war ich der Meinung, dass es mit

Code: Alles auswählen

if (Textbox.text.matches("\\D")){
     println("Buchstaben/Zeichen enthalten");
}
klappen sollte. Leider passiert nichts.

Hier im Forum bin ich leider auch nicht fündig geworden.

Vielen Dank für jeden kleinen Hinweis.

Mit Freundlichen Grüßen

AndyK
Mac OSX 10.6
Netbeans 6.9
  • JavaFX
  • RegEx Plugin
  • SVN (ServerWin2k8 & Visual SVN)

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Textbox per Regex überprüfen

Beitrag von arittner » 19.11.2010, 07:03

Moin!

Wäre das nicht ein kleines d?

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

AndyK
Beiträge: 7
Registriert: 18.11.2010, 14:42
Wohnort: Baden

Re: Textbox per Regex überprüfen

Beitrag von AndyK » 19.11.2010, 07:42

Moin Josch,

Danke für die schnelle Antwort. Ich muss mich entschuldigen habe mich unklar ausgedrückt.
ein kleines d liefert true sobald eine Zahl enthalten ist, ist aber auch ein Buchstabe enthalten liefert das ganze auch wieder true oder nicht?! Daher dachte ich mit einem großen D, da ich dann ein true bekomme sobald ein anderes Zeichen als eine Zahl enthalten ist und ich dann eine Abfrage wie

Code: Alles auswählen

if (!textbox.text.tostring().matches("\\D")){
     Dann gehts weiter im Programm
}
else{
     zurück auf Anfang
}
sollte dies dann bewirken.

Vielleicht hilft meine Funktion die ich im zum Testen habe:

Code: Alles auswählen

function tBarcodeActionAtsDefekt(): Void {
        if (tBarcode.text.toString().matches("\\D")) {
            println("Buchstabe/Zeichen enthalten");
        }
        else if (tBarcode.text.toString().matches("\\d")){
            println("Zahlen enthalten");
        }
        tBarcode.clear();
}
Hierbei wird aber keine der beiden Ausgaben ausgegeben.

Wenn ich das regEx Package importiere wird es von Netbeans gelb unterlegt "unnötigen Import entfernen".

MfG

AndyK
Mac OSX 10.6
Netbeans 6.9
  • JavaFX
  • RegEx Plugin
  • SVN (ServerWin2k8 & Visual SVN)

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Textbox per Regex überprüfen

Beitrag von arittner » 19.11.2010, 10:27

Moin!

Buchstaben oder Zahlen, Du solltest Dir einen RegEx-Tester besorgen und mal die Syntax probieren.

Das ist für Buchstaben und Zahlen ohne Leerzeichen (und ohne Umlaute): [a-zA-Z\\d]+

Du könntest auch Possix verwenden: (\\p{Alnum})+

Infos zu Patterns: http://download.oracle.com/javase/1.4.2 ... ttern.html

\\D für Nichtziffer, wären ja *keine* Zahlen und jedes andere beliebige Zeichen. Außerdem nur eines. Du musst mit + erweitern, damit Du 1 oder mehr bekommst. Die eckigen Klammern erzeugen eine Menge an Buchstaben.

Tutorial: http://download.oracle.com/javase/tutor ... intro.html

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

Benutzeravatar
arittner
Beiträge: 3229
Registriert: 05.08.2008, 07:20
Wohnort: Südniedersachsen
Kontaktdaten:

Re: Textbox per Regex überprüfen

Beitrag von arittner » 19.11.2010, 10:29

Moin!
AndyK hat geschrieben: ist aber auch ein Buchstabe enthalten liefert das ganze auch wieder true oder nicht?!
Nein, das hättest Du durch ausprobieren aber auch schnell raus finden können ;-)

Beste Grüße,
Josch.
JNBB/BeanDev-Blog | Twitter@beandev
Bild
Sun Certified Specialist for NetBeans IDE

AndyK
Beiträge: 7
Registriert: 18.11.2010, 14:42
Wohnort: Baden

Re: Textbox per Regex überprüfen

Beitrag von AndyK » 19.11.2010, 10:38

Hallo Josch,

danke schon mal für die Antworten. Ich hab das regEx-Plugin von Netbeans verwendet, dies liefert leider, muss ich sagen, nur die Werte von der Eingabe zurück welche übereinstimmen.
Dann werde ich das jetzt mal testen.

Grüße

AndyK
Mac OSX 10.6
Netbeans 6.9
  • JavaFX
  • RegEx Plugin
  • SVN (ServerWin2k8 & Visual SVN)

AndyK
Beiträge: 7
Registriert: 18.11.2010, 14:42
Wohnort: Baden

Re: Textbox per Regex überprüfen gelöst

Beitrag von AndyK » 19.11.2010, 10:49

Hallo Josch,

habe eben getestet und muss sagen kleine Ursache große Wirkung.
Mit dem folgenden Code funktioniert es wie gewünscht:

Code: Alles auswählen

tBarcode.text.toString().matches("\\d+")
Der junge Padawan muss noch viel lernen. :wink:
Manchmal hilft es halt auch wenn man ein wenig Abstand zu dem Problem nimmt. :)

Vielen Dank nochmal für die sehr schnelle :!: Unterstützung.
Von meiner Seite aus ist das Problem gelöst.

Mit besten Grüßen

AndyK
Mac OSX 10.6
Netbeans 6.9
  • JavaFX
  • RegEx Plugin
  • SVN (ServerWin2k8 & Visual SVN)

Antworten