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) {
}
});
这个就完成了,
先写出这样一个方法
// 过滤特殊字符
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) {
}
});
这个就完成了,
相关文章推荐
- F4Cmd | F4 键增强 For TC
- MySQL使用小记
- php 生成订单号
- 手把手教你最简单的开源项目托管GitHub入门教程
- PHP session阻塞页面的问题
- C语言中的结构体
- 2015/11/10 CocoaPods详解之----使用篇
- JavaScript获取当前项目各种路径
- HMM Algorithm Theory
- buttons.css——可以与bootstrap融合的按钮样式库
- Linux下查询文件类型非*.jpg的并删除
- OpenWithMenu | 打开方式菜单
- Oracle创建主外键
- react
- git删除远程文件夹或文件的方法
- JasperReport学习笔记2-创建简单的报表例子
- 堆栈窗体QStackedWidget
- JDBC连接各数据库
- InputManager 的启动过程
- Spark实战1:单节点本地模式搭建Spark运行环境