android edittext过滤表情,EditText过滤表情符号
项目中我们通常可以通过第三方输入法项Android文本框中输入表情符号,但是后台解析时可能会报错,所以通常我们都会屏蔽掉EditText的表情符号输入。下面介绍一下自己为了解决这个问题爬过的坑。
第一种解决方案(错误的):
public boolean isEmojiCharacter(char codePoint) {
return !((codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) || (codePoint == 0xD) || ((codePoint >= 0x20) && codePoint <= 0xD7FF)) || ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) || ((codePoint >= 0x10000) && (codePoint <= 0x10FFFF));
}
通过这种方法判断输入的字符是否是表情符号确实可以达到目的,但也会带来其他问题。经过测试,EditText确实不能输入表情符号了,但是输入中文逗号的时候回删除前面的一个字符(如果前面有字符的话),所以最后放弃了这种方法。
第二种解决方案(错误的):
使用正则表达式,代码如下
public static boolean isEmote(String content) {
String NOT_EMOJI = "[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]";
Pattern pattern = Pattern.compile(NOT_EMOJI);
Matcher matcher = pattern.matcher(content);
return matcher.find();
}
经测试,这种方法能过滤到多数表情符号,但不是全部的,所以这种方法也放弃了。
第三种解决方案(目前为止没测出来bug):
使用InputFilter,代码如下
InputFilter EMOJI_FILTER = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
for (int index = start; index < end; index++) {
int type = Character.getType(source.charAt(index));
if (type == Character.SURROGATE) {
return "";
}
}
return null;
}
};
这种方法涉及到Unicode编码,今后有时间会做进一步研究,如果发现有bug或者发现更好的方法也会对本文进行更新。
参考地址:http://blog.csdn.net/zahuopuboss/article/details/52222667
android edittext过滤表情,EditText过滤表情符号相关推荐
- android edittext 输入法表情,Android开发中EditText禁止输入Emoji表情符
在开发中可能多处会用到过滤Emoji表情符,一般情况下,我们会通过EditText的addTextChangedListener()监听来过滤Emoji表情,但在实际开发中会遇到多个EditText, ...
- Android实战场景 - 限制EditText仅支持输入数字、英文、汉字,禁止输入表情等特殊符号
因项目需求,需要禁止用户输入表情符号,具体如下 ~ EditText相关Blog TextView.EditText属性大全 监听 EditText 文本变化 设置 EditText 光标颜色与下划线 ...
- android实现qq表情库,Android编程开发之EditText实现输入QQ表情图像的方法
本文实例讲述了Android编程开发之EditText实现输入QQ表情图像的方法.分享给大家供大家参考,具体如下: 实现效果如下: 将QQ表情图像放到res下的drawable-hdpi文件夹下: 布 ...
- ios 表情符号 键盘_iOS输入框过滤表情,处理自带键盘无法输入
本片分两部分 1.使用正则表达式过滤表情 2.处理苹果自带键盘无法输入汉字问题 先记录下,后面完善: override func viewDidAppear(_ animated: Bool) { s ...
- Android:TextView与EditText中插入表情图片
表情工具类,用于在TextView与EditText中插入表情图片: public class FaceUtil {public int[] faceIds;public String[] faceC ...
- 【转】android 中如何限制 EditText 最大输入字符数
原文网址:http://blog.csdn.net/fulinwsuafcie/article/details/7437768 方法一: 在 xml 文件中设置文本编辑框属性作字符数限制 如:andr ...
- EditText禁止输入表情
一.前言 以前在做社区项目时,有个IM的需求,里面用到了自定义表情, 那时基本的做法就是在string.xml里面定义一个StringArray表情含义数组,里面每一个含义对应一个表情. 当在Edit ...
- android edittext属性 大小写,EditText输入类型总结
原标题:EditText输入类型总结 Android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大的方便的操作.有时需要虚拟键盘只为字符或只为数字.所以 ...
- java后台过滤特殊表情_java过滤表情图标
package com.yt.util; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apac ...
最新文章
- office excel单列数据类型不一致,导入时部分数据为空
- 压力传感器 ZNHM-I-5KG初步测试
- 码农回忆刚毕业工作的那年
- (42)Verilog HDL 打两拍设计
- bzoj千题计划127:bzoj1041: [HAOI2008]圆上的整点
- 简单触发器的使用 -- 献给SQL初学者
- 洛谷P2473奖励关——状压DP
- 不会写Java面试简历?看这一篇就够了(项目经历,个人技能)
- 注销Apple ID的正确打开方式
- 自己组装电脑后怎么装Win10系统教学
- 拉开中兴帷幕 张朝阳再造搜狐
- Halcon 识别DataMatrix二维码
- 灵感分享|10个优秀网站设计实例赏析及原型分享
- iOS Camera照相机
- 未明学院:学员来稿 | 2019年中国电影分析报告
- 一文带你学会linux系统 史上最全linux命令大全
- 内事不决问张昭,外事不决问周瑜,“ 排序 ”不决问威少
- 【网站】国内最火的10款Java开源项目,都是国人开发,CMS居多
- java导出excel 边框不全_POI 导出Excel合并单元格后部分边框不显示
- 关于error C2065 错误