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