Java: проверка ввода текстового поля, если оно содержит только буквенные символы
Как проверить, если текст содержит только буквенные символы?
Я думаю, что мы можем использовать Pattern.matches()
но я не знаю регулярного выражения для буквенных символов.
2 ответа
Используйте категорию для алфавитов в сочетании с matches
и разделители для начала и конца входного текста, как таковые:
String valid = "abc";
String invalid = "abc3";
Pattern pattern = Pattern.compile("^\\p{Alpha}+$"); // use \\p{L} for Unicode support
Matcher matcher = pattern.matcher(valid);
System.out.println(matcher.matches());
matcher = pattern.matcher(invalid);
System.out.println(matcher.matches());
Выход:
true
false
Примечание: это также происходит для предотвращения пустых входов. Если вы хотите разрешить их, используйте другой квантификатор, чем +
а именно *
,
Наконец, так как вы будете использовать это против java.awt.TextField
, вы можете просто получить доступ к его тексту с помощью метода getText()
,
Было бы лучше, если бы вы использовали JFormattedTextField
вот больше информации в этом: http://docs.oracle.com/javase/7/docs/api/javax/swing/JFormattedTextField.html