Allow only selected charcters based on regex in an EditText

android, android-edittext, regex, user-input, validation

Solution

Used a `TextWatcher` as @Matt Ball suggested.

@Override
public void afterTextChanged(Editable s) {
      String text = s.toString();
      int length = text.length();

      if(length > 0 && !Pattern.matches(PATTERN, text)) {
           s.delete(length - 1, length);
      }
}

Edit Although the `TextWatcher` works, it would be cleaner to use an `InputFilter`. Check this example.

Problem

I want to allow users only to type certain characters based on the a regex in my android applications. How do I achieve it?

Original source

Related problems