在EditText中仅允许基于正则表达式的选定字符

Rag*_*har 4 regex validation android user-input android-edittext

我想只允许用户根据我的Android应用程序中的正则表达式键入某些字符.我该如何实现?

Rag*_*har 11

使用TextWatcher@Matt Ball建议.

@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);
      }
}
Run Code Online (Sandbox Code Playgroud)

编辑 虽然TextWatcher工作,但使用它会更干净InputFilter.检查此示例.