1.1.中文过滤,限制输入1-10个中文,为了编辑姓名使用
class ChineseFiter implements InputFilter { private String regEx = "[\\u4e00-\\u9fa5]{1,10}[\\u4e00-\\u9fa5]"; private Pattern pattern = Pattern.compile(regEx); @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { if (!pattern.matcher(source).matches()) { return "";//表示条件不符,不输入将要输入的字符串,所以在这里可以做很多事 } return null; } }1.2.使用方法
edRegisterName.setFilters(new InputFilter[]{new ChineseFiter(), new InputFilter.LengthFilter(10) { }});
2.1限制输入非标点符号
new InputFilter() {2.2使用方法,参上1.2
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
if (!Character.isLetterOrDigit(source.charAt(i))) {
return "";
}
}
return null;
}
}
3.1
参数说明
source 新输入的字符串 start 新输入的字符串起始下标,一般为0 end 新输入的字符串终点下标,一般为source长度-1 dest 输入之前文本框内容 dstart 原内容起始坐标,一般为0 dend 原内容终点坐标,一般为dest长度-1