前言:在网上看了很多相关内容。确实有些起效。但是标点符号不能打。有些能打但是不能完全屏蔽表情。下面是本人大量测试后找出的正则表达式,
InputFilter inputFilter = new InputFilter() {
Pattern pattern = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\ud83e\udc00-\ud83e\udfff]|[\u2600-\u27ff]",
Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
@Override
public CharSequence filter(CharSequence charSequence, int i, int i1, Spanned spanned, int i2, int i3) {
Matcher matcher = pattern.matcher(charSequence);
if (!matcher.find()) {
return null;
} else {
ToastUtils.showToast("只能输入汉字,英文,数字");
return "";
}
}
};
binding.editContent.setFilters(new InputFilter[]{inputFilter, new InputFilter.LengthFilter(300)});
参考表情链接表情连接
希望能帮助到有需要的同学