可编辑div emoji 表情处理

Posted xuey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可编辑div emoji 表情处理相关的知识,希望对你有一定的参考价值。

DIV 设置可编辑 contenteditable=true

 <div contenteditable=true id="divTest"></div>

 

数据库存入需要将表设置为utf8mb4 编码格式

如果对数据处理,例如转为json数据,emoji 表情将无法存入数据库,需要对 emoji 表情做转码处理

function utf16toEntities(str) {
            var patt=/[ud800-udbff][udc00-udfff]/g;
            // 检测utf16字符正则
            str = str.replace(patt, function(char){
                var H, L, code;
                if (char.length===2) {
                    H = char.charCodeAt(0);
                    // 取出高位
                    L = char.charCodeAt(1);
                    // 取出低位
                    code = (H - 0xD800) * 0x400 + 0x10000 + L - 0xDC00;
                    // 转换算法
                    return "&#" + code + ";";
                } else {
                    return char;
                }
            });
            return str;
        }

从数据库取出做解码处理

//表情解码
function uncodeUtf16(str){
     var reg = /&#.*?;/g;
     var result = str.replace(reg,function(char){
     var H,L,code;
     if(char.length == 9 ){
          code = parseInt(char.match(/[0-9]+/g));
           H = Math.floor((code-0x10000) / 0x400)+0xD800;
           L = (code - 0x10000) % 0x400 + 0xDC00;
           return unescape("%u"+H.toString(16)+"%u"+L.toString(16));
       }else{
             return char;
        }
    });
    return result;
}

以上是关于可编辑div emoji 表情处理的主要内容,如果未能解决你的问题,请参考以下文章

可编辑DIV 光标位置 处理

Js聊天项目-删除输入聊天的emoji表情

js 怎么把emoji表情给过滤掉

安卓怎么处理emoji表情提交给后台

emoji表情处理,emoji表情的编码解码

python 怎么过滤 emoji 表情符号