Android中EditText禁止输入表情的实例代码
发布时间 - 2026-01-11 02:59:51 点击率:次最近在做的项目中用户编辑资料的时候不希望用户输入表情,如果用户输入表情的话上传给后台要报错,所以需要我们前端做一个判断。下面就来说一下怎么在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,就是这么简单。希望对大家的学习有所帮助,也希望大家多多支持。
# edittext禁止输入表情
# android
# 禁止输入表情
# edittext输入表情
# android同时控制EditText输入字符个数和禁止特殊字符输入的方法
# Android之EditText控制禁止输入空格和回车
# Android实现EditText控件禁止输入内容的方法(附测试demo)
# Android EditText禁止输入空格和特殊字符
# Android如何禁止向EditText控件中输入内容详解
# 就会
# 有很多
# 英文
# 列子
# 不支持
# 第一个
# 其他的
# 要想
# 第二个
# 做一个
# 重写
# 报错
# 这么简单
# 不能够
# 什么问题
# 掉进
# 大家多多
# 提醒大家
# 表情符号
# 率很高
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
详解Android——蓝牙技术 带你实现终端间数据传输
如何在不使用负向后查找的情况下匹配特定条件前的换行符
打造顶配客厅影院,这份100寸电视推荐名单请查收
Python自然语言搜索引擎项目教程_倒排索引查询优化案例
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
如何在万网自助建站中设置域名及备案?
香港服务器选型指南:免备案配置与高效建站方案解析
网站制作免费,什么网站能看正片电影?
如何登录建站主机?访问步骤全解析
深圳网站制作平台,深圳市做网站好的公司有哪些?
Laravel如何实现API资源集合?(Resource Collection教程)
jQuery 常见小例汇总
如何快速查询域名建站关键信息?
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
JavaScript如何实现错误处理_try...catch如何捕获异常?
WEB开发之注册页面验证码倒计时代码的实现
如何用AI帮你把自己的生活经历写成一个有趣的故事?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Laravel如何实现一对一模型关联?(Eloquent示例)
Mybatis 中的insertOrUpdate操作
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
详解CentOS6.5 安装 MySQL5.1.71的方法
Python文件操作最佳实践_稳定性说明【指导】
如何在Windows 2008云服务器安全搭建网站?
Laravel集合Collection怎么用_Laravel集合常用函数详解
JavaScript如何实现音频处理_Web Audio API如何工作?
如何用wdcp快速搭建高效网站?
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
LinuxShell函数封装方法_脚本复用设计思路【教程】
如何自定义建站之星网站的导航菜单样式?
如何将凡科建站内容保存为本地文件?
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
如何在云主机上快速搭建多站点网站?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel模型事件有哪些_Laravel Model Event生命周期详解
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
如何在企业微信快速生成手机电脑官网?
如何挑选高效建站主机与优质域名?
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
晋江文学城电脑版官网 晋江文学城网页版直接进入
JavaScript如何实现倒计时_时间函数如何精确控制
Win11关机界面怎么改_Win11自定义关机画面设置【工具】

