Search code examples
javaregexcharacter-properties

Java: Validate textfield input if it only contains alphabetic characters


How do I validate if a text only contains alphabetic characters?

I think we can use Pattern.matches() but I don't know the regular expression for alphabetic characters.


Solution

  • Use a category for alphabetics, combined with matches, and delimiters for the beginning and end of input text, as such:

    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());
    

    Output:

    true
    false
    

    Note: this also happens to prevent empty inputs. If you want to allow them, use a different quantifier than +, namely, *.

    Finally, since you will use that against a java.awt.TextField, you can simply access its text with the method getText().