editext不支持表情外,支持任何内容

前言:在网上看了很多相关内容。确实有些起效。但是标点符号不能打。有些能打但是不能完全屏蔽表情。下面是本人大量测试后找出的正则表达式,

        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)});

参考表情链接表情连接
希望能帮助到有需要的同学

你可能感兴趣的:(android学习记录)