美文网首页
emoji表情 - 字符串,互转

emoji表情 - 字符串,互转

作者: coderfl | 来源:发表于2020-06-19 18:58 被阅读0次
// emoji表情转字符串
            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;
            },
// 字符串恢复emoji表情
            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;
            }

使用前请自测,表情可能过滤不全

相关文章

网友评论

      本文标题:emoji表情 - 字符串,互转

      本文链接:https://www.haomeiwen.com/subject/masbxktx.html