JS前端去掉emoji表情和Java后台处理emoji表情方法

莫非定律 : 任何事情都没表面看去来那么简单!emoji表情在项目中使用,因为其特殊的编码格式,经常导致在网络传输、编解码、以及数据入库中带来一些问题!下面简单介绍使用Js和java处理移除emoji表情!Emoji 表情的相关基础内容介绍,请读者自行在网上查找资料!前端JS代码//emojob编码集,因为emoji表情在不断地增加,下面的reg可能在未来会不能满足…

大家好,又见面了,我是全栈君。

莫非定律 : 任何事情都没表面看去来那么简单!

emoji表情在项目中使用,因为其特殊的编码格式,经常导致在网络传输、编解码、以及数据入库中带来一些问题!

下面简单介绍使用Js和java处理移除emoji表情!

Emoji 表情的相关基础内容介绍,请读者自行在网上查找资料!

前端JS代码

//emojob编码集,因为emoji表情在不断地增加,下面的reg可能在未来会不能满足判断,使用者需要注意!
    var emojiReg = /[\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/gi; 

    //输入框输入内容时候触发,进行移除emoji表情的操作
    $('#msg').on('input',function(){
        var msgHdnValue = $(this).val();
        var isEmoji = validateMsgEmoji(msgHdnValue);
        //替换emoji表情,以及末尾空格,和 空格
        msgHdnValue =  msgHdnValue.replace(emojiReg,"").replace(/(\s*$)/g,"").replace(/[ ]+/g,"").trim();


        if(isEmoji){
                $(this).html(msgHdnValue);//替换了内容后,输入框关标会发生变化,移到输入框开始位置!
                po_Last_Div($(this)[0]); //定位将关闭移到输入框结尾处
        }   
    })

 /** * 验证发送消息中是否包含emoji表情 * @param msg * @returns {Boolean} */
    function validateMsgEmoji(msg){
        if (regStr.test(msg)) {
            return true;
        }
        return false;
    }

    /** * 光标定位最后一行 * @param obj */
    function po_Last_Div(obj) {
        if (window.getSelection) {
            obj.focus();
            var range = window.getSelection();
            range.selectAllChildren(obj);
            range.collapseToEnd();//光标移至最后
        }
        else if (document.selection) {
  
  //ie10 9 8 7 6 5
            var range = document.selection.createRange();//创建选择对象
            //var range = document.body.createTextRange();
            range.moveToElementText(obj);//range定位到obj
            range.collapse(false);//光标移至最后
            range.select();
        }
    }

**使用input进行监控,主要是因为在IOS系统,keyup事件无法监听,或者兼容性不好!**

java后端操作,使用方法比较暴力,直接进行正则替换!

代码如下:

msg = msg.replaceAll("[^\\u0000-\\uFFFF]", "");

参考博文

Emoji的编码以及常见问题的解决方法
input、textarea、div(contenteditable=true)光标定位到最后



如果您觉得这篇博文对你有帮助,请点个赞,让更多的人看到,谢谢!


如果帅气(美丽)、睿智(聪颖),和我一样简单善良的你看到本篇博文中存在问题,请指出,我虚心接受你让我成长的批评,谢谢阅读!
祝你今天开心愉快!


欢迎访问我的csdn博客,我们一同成长!

“不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!”

博客首页:http://blog.csdn.net/u010648555

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121106.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • jsp文件开头<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 > 有什么用

    jsp文件开头<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 > 有什么用http://www.w3.org/TR/html4/loose.dtd”> 声明位于文档中的最前面的位置,处于  标签之前。DOCTYPE是DocumentType(文档类型)的简写,此标签用来告知浏览器文档使用哪种 HTML 或 XHTML 规范。Eg:

    2022年7月14日
  • 支持向量回归模型SVR

    支持向量回归模型SVR1.SVM回归模型的损失函数度量    回顾下我们前面SVM分类模型中,我们的目标函数是让12||w||2212||w||22最小,同时让各个训练集中的点尽量远离自己类别一边的的支持向量,即yi(w∙ϕ(xi)+b)≥1yi(w∙ϕ(xi)+b)≥1。如果是加入一个松弛变量ξi≥0ξi≥0,则目标函数是12||w||22+C∑i=1mξi12||w||22+C∑i=1mξi,对应的约束条

    2022年5月13日
  • matlab adrc,ADRC自抗扰控制器MATLAB程序

    matlab adrc,ADRC自抗扰控制器MATLAB程序【实例简介】演变过程自抗扰控制器自PID控制器演变过来,采取了PID误差反馈控制的核心理念。传统PID控制直接引取输出于参考输入做差作为控制信号,导致出现响应快速性与超调性的矛盾出现。折叠编辑本段组成部分自抗扰控制器主要由三部分组成:跟踪微分器(trackingdifferentiator),扩展状态观测器(extendedstateobserver)和非线性状态误差反馈控制律(nonl…

    2022年5月12日
  • Arch 安装 deb

    Arch 安装 deb安装debtapyaourt-Sdebtap也应该安装bash,binutils,pkgfile和fakeroot依赖包。创建/更新pkgfile和debtap数据库。sudodebtap-u转换deb包debtap***.deb安装sudopacman-U<package-name>…

    2022年5月4日
  • xshell为什么老会突然连接不上虚拟机_虚拟机配置xshell连接

    xshell为什么老会突然连接不上虚拟机_虚拟机配置xshell连接问题背景最近一段时间在研究docker的使用时,在VM中安装了CentOS7.6,配置了静态IP,使用Xshell连接虚拟机,发现响应的速度特别慢,大概得有10秒钟才能连上。具体描述使用Xshell连接配置好的主机,会在这个地方停留至少十秒钟。Xshell6(Build0111)Copyright(c)2002NetSarangComputer,Inc.Allrightsr…

    2022年9月22日
  • bt3硬盘安装_SD卡比U盘音质好

    bt3硬盘安装_SD卡比U盘音质好在U盘/SD卡上安装BT3教程(激活成功教程无线路由信号密码必备)其实网上关于BT3的教程很多,如果大家根据下面的教程安装不成功的话,可以再去百度一下其它的教程。前几天写过一个帖子是关于如何用BT3激活成功教程路由信号的(点我查看),为了引起关注,放在了Win区。在那个帖子里我是将

    2022年10月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号