博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
emoji输入过滤
阅读量:6159 次
发布时间:2019-06-21

本文共 2065 字,大约阅读时间需要 6 分钟。

给edittext添加inputfilter,同时对键盘输入和剪切板粘贴有效

edittext.setFilters(new InputFilter[]{emojiFilter});复制代码
public class EmojiInputFilter implements InputFilter {    private static final String EMOJI_REGEX = "(?:" +            "[\\uD83C\\uDE01\\uD83C\\uDE02\\uD83C\\uDE1A\\uD83C\\uDE2F\\uD83C\\uDE32-\\uD83C\\uDE3A\\uD83C\\uDE50\\uD83C\\uDE51]\\uFE0F?|" +            "[\\uD83C\\uDD70\\uD83C\\uDD71\\uD83C\\uDD7E\\uD83C\\uDD7F\\uD83C\\uDD8E\\uD83C\\uDD91-\\uD83C\\uDD9A]\\uFE0F?|" +            "[\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA]\\uFE0F|" +            "[\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE]\\uFE0F?|" +            "[\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55]\\uFE0F?|" +            "[\\u0023\\u002A\\u0030-\\u0039]\\uFE0F?\\u20E3|" +            "[\\u2194-\\u2199\\u21A9-\\u21AA]\\uFE0F?|" +            "[\\uD83C\\uDDE6-\\uD83C\\uDDFF]{1,2}|" +            "[\\u2600-\\u26FF]\\uFE0F?|" +            "[\\u2700-\\u27BF]\\uFE0F?|" +            "[\\u2934\\u2935]\\uFE0F?|" +            "[\\u3030\\u303D]\\uFE0F?|" +            "[\\u3297\\u3299]\\uFE0F?|" +            "[\\u203C\\u2049]\\uFE0F?|" +            "[\\u00A9\\u00AE]\\uFE0F?|" +            "[\\u2122\\u2139]\\uFE0F?|" +            "[\\ud83d\\udc00-\\ud83d\\udfff]\\uFE0F?|" +            "\\uD83C\\uDC04\\uFE0F?|" +            "\\uD83C\\uDCCF\\uFE0F?|" +            "\\u24C2\\uFE0F?|" +            "[\\uD83C\\uDF00-\\uD83D\\uDDFF]\\uFE0F?|" +            "[\\uD83E\\uDD00-\\uD83E\\uDDFF]\\uFE0F?|" +            "[\\uD83D\\uDE00-\\uD83D\\uDE4F]\\uFE0F?|" +            "[\\uD83D\\uDE80-\\uD83D\\uDEFF]\\uFE0F?" +            "?)";    private final Pattern pattern = Pattern.compile(EMOJI_REGEX);    @Override    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {        if (source == null) {            return null;        }        Matcher matcher = pattern.matcher(source);        if (matcher.find()) {            return matcher.replaceAll("");        }        return source;    }}复制代码

转载于:https://juejin.im/post/5c459d676fb9a049cd5483e2

你可能感兴趣的文章
Oracle中drop user和drop user cascade的区别
查看>>
登记申请汇总
查看>>
Android Jni调用浅述
查看>>
CodeCombat森林关卡Python代码
查看>>
(二)Spring Boot 起步入门(翻译自Spring Boot官方教程文档)1.5.9.RELEASE
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
售前工程师的成长---一个老员工的经验之谈
查看>>
Get到的优秀博客网址
查看>>
老男孩教育每日一题-第107天-简述你对***的理解,常见的有哪几种?
查看>>
Python学习--time
查看>>
在OSCHINA上的第一篇博文,以后好好学习吧
查看>>
Spring常用注解
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
数据库之MySQL
查看>>
2019/1/15 批量删除数据库相关数据
查看>>
数据类型的一些方法
查看>>