2013-08-04 47 views

回答

2

使用alphabetics一個類別,與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()即可訪問其文本。

+0

如果您希望匹配非ASCII字母,您需要使用'(?U)'。 – tchrist

+0

@ tchrist實際上'?U'標誌是無效的。您可能正在考慮'?u',這對我的解決方案也無濟於事。但感謝指出Unicode支持,我已經調整了我的答案。 – Mena

+0

不,我正在考慮Java 7中的「(?U)」。在此之前,Java正則表達式在Unicode方面確實不能很好地工作。 – tchrist