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

Другие вопросы по тегам