序文:私はインターネットで多くの関連コンテンツを読みました。うまくいきました。ただし、句読点は入力できません。一部のユーザーは再生できますが、絵文字を完全にマスクすることはできません。以下は、多くのテストの後に見つけた正規表現です。
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)});