我想做的是输入框里面部分特殊符号不允许输入。
private boolean isSymbol(String input){
Pattern pattern = Pattern.compile("[`~!@#$^&*_+=|{}':;,\\[\\]<>/?!¥…()—·‘:”“’?]|[\u3010-\u3011]|[\u007d-\u007e]|[\u0060]|[\u00b7]|[\u007b]|[\\u005c]");
Matcher matcher = pattern.matcher(input);
return matcher.find();
}
inputtext1.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void onTextChanged(CharSequence charSequence, int start, int before, int count) {
if (count - before >= 1) {
CharSequence input = charSequence.subSequence(start + before, start + count);
if (isSymbol(input.toString())) {
toast("不支持特殊符号");
((SpannableStringBuilder) charSequence).delete(start + before, start + count);
}
}
}
@Override
public void afterTextChanged(Editable editable) { }
});
执行后出现的问题有
1、中文的~这个按键的三种字符都不能识别,还是可以输入(· ~ `)
2、中文的{ }也是仍然可以输入