最近遇到了一个需求,就是在设置账号名称中禁止输入表情,就把该知识点整理了一下,记录以便下次查找. 可能还有不完善之处,请各位补充。

方法1:此方法个别表情识别不出来   比如我的华为手机 电话表情 不能识别

 

//此方法个别表情识别不出来   比如我的华为手机 电话表情 不能识别//去除表情规则
//  \u0020-\\u007E  标点符号,大小写字母,数字
//  \u00A0-\\u00BE  特殊标点  (¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾)
//  \u2E80-\\uA4CF  繁简中文,日文,韩文 彝族文字
//  \uF900-\\uFAFF  部分汉字
//  \uFE30-\\uFE4F  特殊标点(︴︵︶︷︸︹)
//  \uFF00-\\uFFEF  日文  (オカキクケコサ)
//  \u2000-\\u201f  特殊字符(‐‑‒–—―‖‗‘’‚‛“”„‟)
//  注:对照表 http://blog.csdn.net/hherima/article/details/9045765
//  [^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u2000-\\u201f\r\n]public  static  boolean isEmoj(String str){String a="[^\\u0020-\\u007E\\u00A0-\\u00BE\\u2E80-\\uA4CF\\uF900-\\uFAFF\\uFE30-\\uFE4F\\uFF00-\\uFFEF\\u0080-\\u009F\\u2000-\\u201f\\r\\n]";Pattern pattern = Pattern.compile(a);Matcher isEmoj = pattern.matcher(str);if(isEmoj.matches()){return true;}return false;
}

方法2:此方法个别表情识别不出来   比如我的华为手机 电话表情 不能识别

//此方法个别表情识别不出来   比如电话表情
edt.addTextChangedListener(new TextWatcher() {@Overridepublic void beforeTextChanged(CharSequence s, int start, int count, int after) {}@Overridepublic void onTextChanged(CharSequence s, int start, int before, int count) {if (TextUtils.isEmpty(edt.getText().toString())){return;}if (noContainsEmoji(edt.getText().toString())){Toast.makeText(MainActivity.this,"不支持该表情",Toast.LENGTH_SHORT).show();return;}}@Overridepublic void afterTextChanged(Editable s) {}});private boolean noContainsEmoji(String str) {//真为不含有表情int len = str.length();for (int i = 0; i < len; i++) {if (isEmojiCharacter(str.charAt(i))) {return true;}}return false;}private 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)));}

方法3:此方法个别表情识别不出来   比如我的华为手机 电话表情 不能识别

 //此方法个别表情识别不出来   比如电话表情public static boolean isEmoj2(String substring){for (int i = 0; i < substring.length(); i++) {char hs = substring.charAt(i);if (0xd800 <= hs && hs <= 0xdbff) {if (substring.length() > 1) {char ls = substring.charAt(i);int uc = ((hs - 0xd800) * 0x400) + (ls - 0xdc00) + 0x10000;if (0x1d000 <= uc && uc <= 0x1f77f) {return true;}}} else if (substring.length() > 1) {char ls = substring.charAt(i);if (ls == 0x20e3) {return true;}} else {if (0x2100 <= hs && hs <= 0x27ff) {return true;} else if (0x2B05 <= hs && hs <= 0x2b07) {return true;} else if (0x2934 <= hs && hs <= 0x2935) {return true;} else if (0x3297 <= hs && hs <= 0x3299) {return true;} else if (hs == 0xa9 || hs == 0xae || hs == 0x303d || hs == 0x3030|| hs == 0x2b55 || hs == 0x2b1c || hs == 0x2b1b|| hs == 0x2b50) {return true;}}}return false;}

方法4:我用的是第四种方法(推荐)

//过滤掉表情 可识别我华为手机 qq里面的 电话表情   edt为输入框idedt.setFilters(new InputFilter[]{new EmojiExcludeFilter()});  public class EmojiExcludeFilter implements InputFilter {@Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {for (int i = start; i < end; i++) {int type = Character.getType(source.charAt(i));if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) {return "";}}return null;}}

输入框中-------禁止输入表情相关推荐

  1. 在评论输入框中插入表情

    最近在做一个后台管理系统,要求可以对前台用户的作品进行评论,而评论要可以输入表情,常规的文字输入框都是用的文本域 textarea 来做的,但这种输入框只能输入文字,没有办法输入表情图标,这个时候可编 ...

  2. 正则验证 input 输入框,禁止输入表情包

    禁止输入表情包方法如下: includeSpecial (value) {if (!value) {return}// eslint-disable-next-lineconst regStr = / ...

  3. 文本域和输入框中的表情(emoji)处理

    // 文本中的emoji表情处理 $(document).ready(function(){//$("textarea,input").on("keyup",f ...

  4. android 不能输表情,Android中EditText禁止输入表情

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

  5. Vue中禁止输入表情符号指令

    参考地址:vue el-input中禁止输入表情符号_笑到世界都狼狈的博客-CSDN博客_输入框禁止输入表情 你知道compositionstart和compositionend吗 - 掘金 cons ...

  6. iOS在label中显示表情

    iOS在UILabel.UITextFeild等中显示表情的方法,可以使用表情的编码方式来显示.如下 face.text = @"\ue415\ue056";   //其中\ue4 ...

  7. APPium连接真机输入框中输入的内容与代码中不一致

    今天解决了上一个问题,又碰到了一个新的问题. 问题:连接真机输入框中输入的内容与代码中不一致. 描述: 想实现登录页面输入用户名和密码自动登录,可是在输入用户名和密码的框中输入的内容总是与代码中的不一 ...

  8. php 只能输入中英文,JavaScript基于正则实现控制输入框中只能输入中文、数字和英文的方法...

    这篇文章主要介绍了JavaScript控制输入框中只能输入中文.数字和英文的方法,基于正则验证实现字符输入限制功能,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了Javascript控制输 ...

  9. html取 输入框中的值,jquery获取input输入框中的值

    如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML 一.jquery获取input文本框中的值 通过 ...

最新文章

  1. Java动态代理和静态代理区别
  2. SQL Server 2008 清空删除日志文件 130G日志 10秒内变10M .
  3. SharePoint中Tab方式进行内容展现的WebPart
  4. python36安装numpy_安装numpy
  5. ACM用N个正方体来建造金字塔问可以建造多少层
  6. 30.课时30.【Django模板】autoescape标签使用详解(Av61533158,P30)
  7. Android 系统(67)---android apk 的root 权限和USB adb 权限的区别
  8. spark学习-29-源代码解析从start-all.sh脚本开始
  9. SQL2005迁移账户密码粗鲁设置
  10. 动态规划法(九)想要更多例子? 1
  11. AR导航真的有前途,马云领衔1亿2500万投资
  12. 上传本地项目到githup(githup改版后将master改为main)
  13. 使用遗传算法解决图着色问题
  14. 2014年DevExpress使用教程合集
  15. 企业销售统计管理页面ui模板
  16. lvuaagentinstbaseroot_桌面小助手UniAgent删除指南
  17. java怎么实现简体繁体切换_java代码实现简体繁体转换
  18. dropbox中国大陆使用问题
  19. Solving environment: failed
  20. jacket for matlab,Jacket for Matlab常见问题

热门文章

  1. 公司企业简介暨产品推广宣传PPT模板
  2. 南京理工大学计算机学号6,学生学籍管理系统
  3. java计算机毕业设计学籍管理系统源码+数据库+系统+lw文档+部署
  4. 完整的连接器设计手册_CPCI高速背板设计与仿真
  5. appium无法控制真机问题,Error executing adbExec
  6. LAYDATE日历插件使用
  7. SOLIDWORKS中的两个基本概念
  8. vue-zhihu-daily知乎日报
  9. 在线超级查询大全,没有什么是查不到的(个人收集)
  10. python下标为偶数_P089 下标为奇数位置的字母转换为大写 ★★