如何使用本机 js 获取此 emoji dec 表示?

How to get this emoji dec representation using native js?

我在 html 代码中添加了一个表情符号,并在 div - “ 😀 ” 中写入了它的 dec 表示形式; 如何获得 😀 的数字表示? 我需要处理一个包含文本和表情符号的字符串,并且表情符号应该以数字视图表示。 因此,如果我有一个包含 - "hello world 😀" 的字符串,则应将其替换为 "hello world &#128512 ;"

document.onreadystatechange = function(){
if(document.readyState == "complete"){
       document.getElementById("area").addEventListener("keypress" ,      public_mode);
   }
}

function public_mode(event){
 var key = event.key;
  if(key === "Enter") {
     event.preventDefault();
     sendMessage(this);
   }
}

function sendMessage(area){
 console.log(area.innerHTML);
 area.innerHTML = "";
}
#area {
    padding: 5px;
 width: 170px;
 border:1px solid black;
    }
<div id = "area" contenteditable="true">How to get it in dec - &#128512;</div>

您可以使用 codePointAt(returns 一个 non-negative 整数,即 Unicode 代码点值)。

let emoji = area.innerHTML.split('- ')[1];
console.log(emoji.codePointAt(0));

可以通过.codePointAt()获取字符的编号:

console.log(`&#${ ("".codePointAt(0)) };`)

这个(结合循环)可以解决你的问题:

function encodeEmoji(str){
    let output = ""
    for(let i = 0; i < str.length; i++){
        const codePoint = str.codePointAt(i)
        //don't encode common characters
        if(codePoint > 9727)
            output += `&#${ codePoint };`
        else
            output += str[i]
    }
    return output
}

 console.log(encodeEmoji("hello world "))