Allow only selected charcters based on regex in an EditText
I want to allow users only to type certain characters based on the a regex in my android applications. How do I achieve it? Ragunath Jawahar 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 . Try this: If the character to type matches /[a-zA-Z0-9{insert valid characters here}]/ then allow it, otherwise don't.