您的位置:首页 > 其它

edditText正则限制特殊符号输入

2015-11-10 16:10 148 查看
这个问题,以前没用遇到过,今天还是搞了许久才研究出来,看起来比较简单,步入正题

先写出这样一个方法

// 过滤特殊字符

public static String stringFilter(String str) throws PatternSyntaxException {

String regEx = "[^a-zA-Z0-9@_.\u4E00-\u9FA5]";//这里可以写出要过滤的符号或者其他,添加在里面就可以了,

Pattern p = Pattern.compile(regEx);

Matcher m = p.matcher(str);

return m.replaceAll("").trim();

}

//然后写出控件的文本监听事件

etUsername.addTextChangedListener(new TextWatcher() {

@Override

public void onTextChanged(CharSequence arg0, int arg1, int arg2,

int arg3) {

//在这里调用

String editable = etUsername.getText().toString();

String str = stringFilter(editable.toString());

if (!editable.equals(str)) {

etUsername.setText(str);

// 设置新的光标所在位置

etUsername.setSelection(str.length());

}

}

@Override

public void beforeTextChanged(CharSequence arg0, int arg1,

int arg2, int arg3) {

// TODO Auto-generated method stub

}

@Override

public void afterTextChanged(Editable arg0) {

}

});

这个就完成了,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: