EditText中文过滤,InputFilter

来源:互联网 发布:网络相关法律法规 编辑:程序博客网 时间:2024/05/18 21:43

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() {

@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;
}
}
2.2使用方法,参上1.2
3.1
参数说明
source    新输入的字符串    start    新输入的字符串起始下标,一般为0    end    新输入的字符串终点下标,一般为source长度-1    dest    输入之前文本框内容    dstart    原内容起始坐标,一般为0    dend    原内容终点坐标,一般为dest长度-1


0 0