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)
上一篇 2022年2月27日 上午10:54
下一篇 2022年2月27日 上午10:54


相关推荐

  • decltype有什么用_剑本身用法的介绍

    decltype有什么用_剑本身用法的介绍想从表达式推断出要定义的变量的类型,但不想计算表达式的值,此时可以使用decltype

    2025年10月16日
    5
  • MongoDB配置文件mongod.conf

    MongoDB配置文件mongod.conf

    2021年11月22日
    49
  • 瀑布模型&快速原型模型

    瀑布模型&快速原型模型一 瀑布模型 1 1 什么是瀑布模型瀑布模型将软件生命周期划分为软件计划 需求分析 软件设计 程序编码 软件测试 运行维护等基本活动 并且规定了他们自上而下 相互衔接的固定顺序 如同瀑布流水 逐级下落 瀑布模型是最早出现的软件开发模型 在软件工程中占有特别重要的地位 它提供了软件开发的基本框架 其过程是从上一项活动接收该项活动的工作对象作为输入 利用这一输入实施该项活动应完成的内容给出该项活动的工作成果 并作为输出传给下一项活动 对于经常变化的项目而言 瀑布模型毫无价值 1 2 特点 1 阶段间具

    2026年3月18日
    2
  • 开心网买房子外挂_开心躲猫猫穿墙版下载

    开心网买房子外挂_开心躲猫猫穿墙版下载     开心网的买房子组件出了很久了,竟然到现在还没有出一个买房外挂。上星期某一晚上基于turbozv.com提供的抢车位的源代码,改写了一个买房子的外挂,此外挂不具有抢人住自己家的功能,那个不赚钱。来钱最快的是每隔一小时换一个地方住,随机得0到6000之前的住房津贴。经过一个星期的尝试,平均每天入帐5万,嘿嘿。发给大家一起来挂吧,祝大家早日住上大别墅。…

    2025年11月4日
    5
  • 如何用python做图像处理_python判断窗口是否存在

    如何用python做图像处理_python判断窗口是否存在质量、速度、廉价,选择其中两个提到图像处理第一个想到的库就是PIL,全称PythonImagingLibraryPython,图像处理类库,它提供了大量的图像操作,比如图像缩放,裁剪,贴图,模糊等等,很多时候它需要配合numpy库一起使用1.open()你可以使用Image.open打开一个图像文件,它会返回PIL图像对象image=Image.open(image…

    2022年10月14日
    5
  • 腾讯HY-MT1.5教程:快速构建翻译微服务API

    腾讯HY-MT1.5教程:快速构建翻译微服务API

    2026年3月12日
    3

发表回复

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

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