Android实现EditText正则表达式过滤

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

你可能感兴趣的:(Android实现EditText正则表达式过滤)