限制EditText输入Emoji表情
这是最近接到需求,运用场景是App内部的搜索,主要是接口不支持用Emoji
查询。我就研究了一下怎么去限制Emoji
表情,分享一下的我的代码,希望对有同样需求的小伙伴有帮助。
创建一个过滤器
public class EmojiFilter implements InputFilter {
@Override
public CharSequence filter(CharSequence source, int i, int i1, Spanned spanned, int i2, int i3) {
Pattern pattern = Pattern.compile(
"[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",
Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(source);
if (matcher.find()) {
return "";
}
return null;
}
}
使用方法
editText.filters = arrayOf<InputFilter>(EmojiFilter())
通过上面的代码就可以实现限制Emoji
表情的输入了。