1. 使用xml限制
2. 代码中使用InputFilter方式
ascii可见字符范围是空格到~,即( -~)。
使用InputFilter重写filter方法,使用正则表达式"[^ -~]",表示除空格到“~”的字符集。
然后使用Matcher.find匹配,匹配到了就返回空字符串,表示忽略此次输入;没匹配到返回null,表示当前输入满足条件。
这里在说下 public CharSequence filter()方法的返回值
return "",表示忽略此次输入。
return null,表示当前输入满足条件。
完整的方法如下:
private static InputFilter pwdFilter = new InputFilter() {
Pattern pwdPattern = Pattern.compile(
"[^ -~]",
Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest,
int dstart,
int dend) {
Matcher pwdMatcher = pwdPattern.matcher(source);
if (pwdMatcher.find()) {
return "";
}
return null;
}
};