Android实现EditText正则表达式过滤
xEditUtils.set(etUserName, Regular.LETTER_NUMBER, "请输入字母或数字");
public static final String LETTER_NUMBER="[a-zA-Z\\d]*";
public class XEditUtils {
public void set(final EditText et, final String regular, final String msg) {
et.addTextChangedListener(new TextWatcher() {
String before = "";
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
before = s.toString();
}
@Override
public void afterTextChanged(Editable s) {
if (!s.toString().matches(regular) && !"".equals(s.toString())) {
et.setText(before);
et.setSelection(et.getText().toString().length());
if (msg != null) {
Toast.makeText(et.getContext(), msg, Toast.LENGTH_SHORT)
.show();
}
}
}
});
}
}