Witam
Mam problem z wyrażeniami regularnymi w javie, chcę aby w odpowiednich polach tekstowych można było wpisywqać tylko okreslone wartości np w polu NIP tylko liczby i ewnetualnie "-", pole imie tylko litery itd. Klasa, która jest za to odpowiedzialna wygląda następująco:
import java.util.regex.*;
import javax.swing.JTextField;
public class Validation
{
public static boolean test(JTextField source, String regex)
{
try
{
Pattern pat = Pattern.compile(regex);
Matcher mat = pat.matcher(source.getText());
return mat.matches();
//ewentualnie return Pattern.matches(regex, source.getText()); ale to też nie działa
}
catch (PatternSyntaxException e)
{
e.printStackTrace();
return false;
}
}
}
Kiedy wywołuje tą metodę
if (Validation.test(nip, "[0-9]"))
{
System.out.print("OK");
}
else
{
JOptionPane.showMessageDialog(null, "Błąd");
}
Zawsze wyskakuje pierwsza opcja czyli OK, niezaleznie od tego czy w polu tekstowym o nazwie nip wpiszę cyfry czy litery. Nie mam pojęcia dlaczego tak sie dzieje. Jeśli ktoś wie w czym rzecz prosze o pomoc. Dzieki
Pozdrawiam