寻找emoji的编码范围

在这个网站中可以查看所有的emoji unicode:Emoji Unicode table

用js代码找出这个页面所有emoji unicode 的范围:

let $list = document.querySelectorAll('.category')for(let key in $list){let text = $list[key].innerText?         $list[key].innerText.replace(/(Back to top)|(\n?)/ig,'') :'';console.log(text)}

输出结果:

1. Emoticons ( 1F601 - 1F64F )
2. Dingbats ( 2702 - 27B0 )
3. Transport and map symbols ( 1F680 - 1F6C0 )
4. Enclosed characters ( 24C2 - 1F251 )
5. Uncategorized
6a. Additional emoticons ( 1F600 - 1F636 )
6b. Additional transport and map symbols ( 1F681 - 1F6C5 )
6c. Other additional symbols ( 1F30D - 1F567 )

ES6 新增的 Unicode 字符表示法:将码位放入大括号,就能正确解读该字符 例如 :\u{1F601}

JS emoji符号匹配

得到了emoji unicode 就学要把unicode的范围拼接起来生成正则表达式:

let $list = document.querySelectorAll('.category')let arr = [],regText = '',result;for(let key in $list){let text = $list[key].innerText?$list[key].innerText.replace(/(Back to top)|(\n?)/ig,'') :'';result = text.match(/\(\s+([0-9a-fA-F]+)\s+-\s+([a-fA-F0-9]+)\s+\)/)if(result && result.length == 3){regText += `\\u{${result[1]}}-\\u{${result[2]}}`}arr.push(text)}reg = new RegExp('['+regText+']','gu')console.log(reg);///[\u{1F601}-\u{1F64F}\u{2702}-\u{27B0}\u{1F680}-\u{1F6C0}\u{24C2}-\u{1F251}\u{1F600}-\u{1F636}\u{1F681}-\u{1F6C5}\u{1F30D}-\u{1F567}]/gu

经过测试:\u{24C2}-\x{1F251} 这里要改为\u{1F170}-\u{1F251}

最后得到的JS正则是:

/[\u{1F601}-\u{1F64F}\u{2702}-\u{27B0}\u{1F680}-\u{1F6C0}\u{1F170}-\u{1F251}\u{1F600}-\u{1F636}\u{1F681}-\u{1F6C5}\u{1F30D}-\u{1F567}]/gu

可以使用在线正则表达式验证一下
js emoji 工具

php emoji符号匹配

let $list = document.querySelectorAll('.category')let arr = [],regText = '',result;for(let key in $list){let text = $list[key].innerText?$list[key].innerText.replace(/(Back to top)|(\n?)/ig,'') :'';result = text.match(/\(\s+([0-9a-fA-F]+)\s+-\s+([a-fA-F0-9]+)\s+\)/)if(result && result.length == 3){regText += `\\x{${result[1]}}-\\x{${result[2]}}|`}arr.push(text)}console.log('php 正则表达式')console.log('/['+regText+']/u' );///[\x{1F601}-\x{1F64F}\x{2702}-\x{27B0}\x{1F680}-\x{1F6C0}\x{24C2}-\x{1F251}\x{1F600}-\x{1F636}\x{1F681}-\x{1F6C5}\x{1F30D}-\x{1F567}]/u

经过测试:\x{1F170}-\x{1F251} 这里要改为
所以一般emoji匹配的正则是:

/[\x{1F601}-\x{1F64F}\x{2702}-\x{27B0}\x{1F680}-\x{1F6C0}\x{1F170}-\x{1F251}\x{1F600}-\x{1F636}\x{1F681}-\x{1F6C5}\x{1F30D}-\x{1F567}]/u

php 过滤emoji字符方法:

function removeEmoji($nickname) {$clean_text = "";$regexEmoticons = '/[\x{1F601}-\x{1F64F}\x{2702}-\x{27B0}\x{1F680}-\x{1F6C0}\x{24C2}-\x{1F251}\x{1F600}-\x{1F636}\x{1F681}-\x{1F6C5}\x{1F30D}-\x{1F567}]/u';$clean_text = preg_replace($regexEmoticons, '', $text);return $clean_text;
}
echo removeEmoji('你好												

正则匹配emoji字符相关推荐

  1. re正则匹配中文字符

    re正则匹配中文字符 re 匹配中文字符规则 re.compile(u"[\u4e00-\u9fa5]+") 下图是我爬取jd手表的一条数据 在该字典中的title键所对应的值va ...

  2. js正则匹配可见字符

    正则匹配可见字符 数字大小写字母特殊符号 原理 ascii码33-126为可见字符,对应16进制为x21-x7e var str="agdggd#$%$^234"; patt=/[ ...

  3. pgsql 正则匹配中文字符

    postgres sql 正则匹配中文字符 操作符 ~ 等效于 LIKE, 而 ~~* 对应 ILIKE. 还有 !~~ 和 !~~* 操作符 分别代表 NOT LIKE 和 NOT ILIKE. 另 ...

  4. python正则匹配任意字符_Python 正则表达式 匹配任意字符的写法

    .(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符>>> >>> r=re.compile(r'.*') >>> ...

  5. 正则匹配任意字符(常用正则表达式的书写)

    匹配中文字符的正则表达式: [\u4e00-\u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^\x00-\xff] 评注:可以用来计算字符串的 ...

  6. python正则匹配任意字符_Python 匹配任意字符(包括换行符)的正则表达式写法...

    Python 匹配任意字符(包括换行符)的正则表达式写法 想使用正则表达式来获取一段文本中的任意字符,写出如下匹配规则: (.*) 结果运行之后才发现,无法获得换行之后的文本.于是查了一下手册,才发现 ...

  7. php正则获取标签,PHP通过正则匹配中文字符 过滤html标签 获取文本内容

    正则匹配中文汉字根据页面编码不同而略有区别: GBK/GB2312编码:[x80-xff]+ 或 [xa1-xff]+ UTF-8编码:[x{4e00}-x{9fa5}]+/u [php] $str ...

  8. 正则匹配所有字符(包括换行)

    正文 要匹配所有的字符,可使用类似于 [\s\S] 或 [\w\W] 这样的表达式,大写和小写匹配的字符时互补的 比如 \S 匹配可见字符,\s 匹配不可见字符 >>> re.sea ...

  9. js正则匹配任意字符、匹配标签记录

    匹配任意字符包括换行符:[\s\S] 例:str=str.replace(/<div(([\s\S])?)>/g, '')//匹配<div 里边可以有任意字符> templat ...

  10. python正则匹配任意字符_Python 正则表达式 匹配任意字符

    .(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符 >>> >>> r=re.compile(r'.*') >>> ...

最新文章

  1. 如何解决Linux操作系统找不到网卡的问题
  2. Web开发之Goahead
  3. Spring2.5的新特性
  4. springboot工程的热部署
  5. Gson实现自定义解析json格式
  6. 【C语言】shape of you
  7. 极客先锋 如何生成git的公钥和私钥
  8. 更新项目java_java – 什么是Maven – 更新项目?
  9. Android10 root,Android Q系统Magisk完美实现ROOT
  10. Linux三剑客--grep
  11. 各种门平面图画法_关于CAD各种门怎么画平面图就行 CAD铝合金门窗
  12. 算法 c语言实现 英文版 pdf,数据结构与算法分析++C语言描述++英文版++..pdf-得力文库...
  13. Could not get a resource from the pool 问题解决
  14. 432偏计算机编程,统计学考研432笔记
  15. 从谷歌创始人的公开信中所学到的
  16. 小猫爪:i.MX RT1050学习笔记15-FlexSPI-FLASH使用3-KEIL FLASH算法中的使用
  17. 小红书-笔记灵感-项目总结
  18. 英语学习(10个句子练到极致)
  19. “封转开”行情或再现 低仓位封基现套利机会
  20. 网络打印服务器 linux,在Linux环境下搭建网络打印服务器

热门文章

  1. 模拟退火算法求解超市布局问题
  2. unity3d 游戏模型中世纪场景素材
  3. 人脸识别接口_人脸识别双目摄像头模组应用系统
  4. windows XP虚拟机安装
  5. 在阿里云服务器网站添加子域名无法访问的处理
  6. java 使用poi导出excel柱状图
  7. 图灵奖得主Bengio和LeCun称自监督学习可使AI达到人类智力水平
  8. 漫威超级英雄大全(二)
  9. 收费最低的云存储_柠檬云财税|柠檬云财务软件 V4.2.1电脑版下载
  10. python查找相似图片或重复图片