Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Controllo jtextfield tramite espressioni regolari

    Ho un campo jtextfield e vorrei che l'utente inserisse solo caratteri.

    Ho usato le espressioni regolari:

    Pattern pattern = Pattern.compile("[^0-9]");
    CharSequence stringa=nomecampo.getText();
    Matcher m=pattern.matcher(stringa);
    boolean matchFound = m.find();
    if (matchFound) System.out.println("Stringa corretta");
    else System.out.println("Stringa non corretta");

    Se inserisco una stringa con soli caratteri mi stampa a video correttamente la scritta stringa corretta mentre se inserisco solo numeri mi stampa correttamente a video la scritta stringa non corretta; il problema sorge quando inserisco una stringa del tipo: 3453hgjhgj oppure jhkjh565 o ancora jhjks56skcjk...

    In questi 3 casi mi da la stringa come corretta, anche se non è così perchè la stringa contiene dei numeri e non è di soli caratteri...

    Dove sbaglio???
    Provoca il più bravo, morirai come uno schiavo.

  2. #2
    devi aggiungere i caratteri di inizio (^) e fine ($) stringa:

    Codice PHP:
    Pattern pattern Pattern.compile("^[^0-9]$"); 
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da R@ve M@ster
    Codice PHP:
    Pattern pattern Pattern.compile("^[^0-9]$"); 
    Ma così matcha solo 1 carattere.

    Se si vuole precompilare la regex, basta fare:

    codice:
    Pattern pattern = Pattern.compile("[^0-9]+");
    Matcher matcher = pattern.matcher(tuaStringa);
    
    if (matcher.matches())
    ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.