前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解Android过滤emoji表情正则表达式

详解Android过滤emoji表情正则表达式

作者头像
砸漏
发布2020-11-05 11:20:13
3.2K0
发布2020-11-05 11:20:13
举报
文章被收录于专栏:恩蓝脚本

做了一些信息提交的操作,输入了Emoji表情时,后台数据库无法存储

原因:UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去

讨论了一些方案,最后还是前端来做过滤,如果是Emoji表情直接干掉,因此也找了一些正则表达式,记录下

只过滤一Emoji表情:

[^\u0000-\uFFFF]

过滤Emoji表情和颜文字:

代码语言:javascript
复制
[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]|[\ud83e\udd00-\ud83e\uddff]|[\u2300-\u23ff]|[\u2500-\u25ff]|[\u2100-\u21ff]|[\u0000-\u00ff]|[\u2b00-\u2bff]|[\u2d06]|[\u3030]

写了个静态方法使用:

代码语言:javascript
复制
/** 
   * Emoji表情校验 
   * 
   * @param string 
   * @return 
   */ 
  public static boolean isEmoji(String string) { 
    //过滤Emoji表情 
    Pattern p = Pattern.compile("[^\u0000-\uFFFF]"); 
    //过滤Emoji表情和颜文字 
    //Pattern p = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]|[\ud83e\udd00-\ud83e\uddff]|[\u2300-\u23ff]|[\u2500-\u25ff]|[\u2100-\u21ff]|[\u0000-\u00ff]|[\u2b00-\u2bff]|[\u2d06]|[\u3030]"); 
    Matcher m = p.matcher(string); 
    return m.find(); 
  }

总结

以上所述是小编给大家介绍的Android过滤emoji表情正则表达式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档