博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怎么用JS来过滤Emoji ?
阅读量:6239 次
发布时间:2019-06-22

本文共 753 字,大约阅读时间需要 2 分钟。

今天遇到一个问题,输入输入法表情一直报错导致一直提交出错,后来查询了下原因是因为UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而MySql的utf8编码最多3个字节,所以数据插不进去。

解决方式(共2种)

1.将Mysql的编码从utf8转换成utf8mb4 2.JS过滤掉emoji表情

这里我们选择用js来过滤,代码如下

let oIpt = document.querySelector('#iptVal');oIpt.value = oIpt.value.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig, '');复制代码

直接把去除表情后的值赋值给input就可以,以上正则可以匹配到iOS10.2.1及之前的全部emoji表情,Android的表情因为比较多,可能有遗漏,查询了一个解决方式如下:

let oIptVal = document.querySelector('#iptVal').value;console.log(escape(oIptVal));// escape得到%uD83C%u.........格式的编码,可对应成\u...格式就ok复制代码

以上这样就基本解决了,如果有错误或者疏漏,还请大家多多指教

转载地址:http://hgkia.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
超时机制的简单实现
查看>>
maillog中不记录收发的邮件
查看>>
CentOS 开机自动联网
查看>>
windows:查看进程路径及PID,并杀掉进程
查看>>
JSP语法之八大隐式对象
查看>>
我的友情链接
查看>>
jumpserver的部署
查看>>
Python读写配置文件的实际操作步骤解析
查看>>
112 - Tree Summing
查看>>
sicily 1151. 魔板[Special judge]
查看>>
LNMP——搭建
查看>>
matlab-基础 class 获取变量的类型
查看>>
去IBM面试后的感受
查看>>
Linux基础入门及系统管理01-Linux用户管理命令详解11
查看>>
TurboMail邮件服务器飞邮手机邮箱全新更新抢先睇
查看>>
《Java虚拟机原理图解》3、JVM运行时数据区
查看>>
mysql使用规范-行为规范
查看>>
python函数
查看>>
我的友情链接
查看>>