最近在做的项目中用户编辑资料的时候不希望用户输入表情,如果用户输入表情的话上传给后台要报错,所以需要我们前端做一个判断。下面就来说一下怎么在EditText中屏蔽表情吧。

网上有很多这样的列子但是一不小心就会掉进坑里面,比如继承EditText,重写addTextChangedListener()方法。可能当时你测试的时候没有什么问题,但是项目上线后就会有很多问题,错误率很高,但是查看友盟后台的时候好像是截取字符串长度方面的错误。所以建议大家不要使用那个方法了。

因为上面的方法不行,肯定要想其他的解决方案了。这里想到了通过过滤器来拦截用户输入的字符,可以避免截取字符串角标越界的问题。

InputFilter inputFilter= new InputFilter() {

Pattern emoji = Pattern.compile("[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]",

Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);

@Override

public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

Matcher emojiMatcher = emoji.matcher(source);

if (emojiMatcher.find()) {

// Toast.makeText(MainActivity.this,"不支持输入表情", 0).show();

MyToast.showText("不支持输入表情");

return "";

}

return null;

}

};

然后给editText设置filter,这里给editText设置了两个filter第一个是屏蔽表情,第二个是设置用户输入多少字数的限制

//给editText设置filter

edit_name.setFilters(new InputFilter[]{inputFilter,new InputFilter.LengthFilter(12)});

当然这里最后要提醒大家一点就是,这样屏蔽的表情符号肯定还是不能够百分之百的屏蔽完全的。所以最后我们只能选择让用户填写英文,汉字,和数字了。下面是过滤的代码

InputFilter inputFilter=new InputFilter() {

Pattern pattern = Pattern.compile("[^a-zA-Z0-9\\u4E00-\\u9FA5_]");

@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{

MyToast.showText("只能输入汉字,英文,数字");

return "";

}

}

};

ok,就是这么简单。

android 不能输表情,Android中EditText禁止输入表情相关推荐

  1. EditText禁止输入表情

    一.前言 以前在做社区项目时,有个IM的需求,里面用到了自定义表情, 那时基本的做法就是在string.xml里面定义一个StringArray表情含义数组,里面每一个含义对应一个表情. 当在Edit ...

  2. EditText 禁止输入表情包的正则表达式

    EditText 禁止输入表情包的正则表达式 InputFilter emojiFilter = new InputFilter() {Pattern emoji = Pattern.compile( ...

  3. android edittext 输入法表情,Android开发中EditText禁止输入Emoji表情符

    在开发中可能多处会用到过滤Emoji表情符,一般情况下,我们会通过EditText的addTextChangedListener()监听来过滤Emoji表情,但在实际开发中会遇到多个EditText, ...

  4. mysql存储emoji表情_MySQL中支持emoji表情的存储

    由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...

  5. mysql存储ios表情_MySQL中支持emoji表情的存储

    由于需要实现emoji表情评论的功能,所以数据库需要支持emoji表情的存储,根据查询的资料最终实现了该功能,现将实现的过程以及过程遇到的一些问题记录下来,供大家参考和交流. mysql的utf8编码 ...

  6. Android和Java检查字符串中是否含有表情符并和谐(替换)

    最近项目里读取文本的内容里含有了表情符,传递给后端后无法存入数据库,虽然现在后端修复了,但是我还是想自己过滤,百度了一下发现网上csdn有大量此类代码但是几乎都有错误在里面不知道是不是故意有人为之,特 ...

  7. 【人脸表情识别】如何做好表情识别任务的图片预处理工作

    上一篇专栏文章中,我们介绍了人脸表情识别的相关概念以及研究现状并了解了目前基于图片的人脸表情识别领域最常用的几个数据集.本文将介绍基于图片的人脸表情识别中最常用的预处理方式和对应的方法. 作者& ...

  8. Android实战场景 - 限制EditText仅支持输入数字、英文、汉字,禁止输入表情等特殊符号

    因项目需求,需要禁止用户输入表情符号,具体如下 ~ EditText相关Blog TextView.EditText属性大全 监听 EditText 文本变化 设置 EditText 光标颜色与下划线 ...

  9. android屏蔽表情输入法,Android中EditText屏蔽第三方输入法表情的方法示例

    前言 众所周知如果用第三方的输入法的表情会给开发带来一定的麻烦,一般地像服务器上传的字符都是普通的字符,但是测试,就是狠狠得拿出搜狗输入法,点几个表情,那么问题就来了,要么是显示异常,要么是直接cra ...

最新文章

  1. 信标节能电路模块第二版本调试-无线充电-2021-3-21
  2. Java高阶部分知识点汇总(一)- 成员变量与局部变量详讲
  3. 互联网+金融+IM的未来,你懂?
  4. 抛开约束,增强模型:一行代码提升 ALBERT 表现
  5. PHP中的ob_start用法详解
  6. 德国软件巨头SAP旗下风投基金募集10亿美元 专门投资科技初创公司
  7. PMP项目管理培训课程
  8. Jsoup爬虫之Java爬虫工具类
  9. premiere(Pr)制作逐字出现效果
  10. Java API II
  11. iPhoneXSM屏幕适配、 各机型的逻辑分辨率
  12. 600,000,002,200,300,400等开头的股票都是什么意思
  13. DeepCross(DCN)模型及torch实现
  14. 全球及中国阻力带行业市场前瞻及投资竞争力分析报告2022-2027年
  15. 佳木斯大学计算机专业宿舍,佳木斯大学管理学院宿舍
  16. 如何使用IP摄像头进行电脑直播
  17. 在华为云ECS上部署openGauss
  18. 面试中有关接口测试和接口自动化的那些事 ~
  19. springboot基于JAVA游戏周边商城设计与实现毕业设计源码261622
  20. 《洋娃娃和小熊跳舞》吉他简谱

热门文章

  1. 华为路由交换配置备份FTP
  2. 华为服务器如何备份系统,服务器怎么备份操作系统
  3. Python监控股票实时价格并发邮件通知
  4. 深度学习(deep learning) AI圣经
  5. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十三节--RBAC模式及ABP权限管理(附赠福利)
  6. 五子棋游戏 v1.1 下载
  7. QCustomPlot之平滑曲线上(八)
  8. Python:实现word frequency functions词频函数算法(附完整源码)
  9. 173家国企汇总,互联网到国企,有哪儿些建议加入?
  10. [VirtualBox][Wireshark]如何在虚拟机ubuntu系统中使用Wireshark