Twemoji 解析字符串并将表情符号更改为等效代码

Twemoji parse string and change emojis to code equivalent

我正在使用这个库 https://www.npmjs.com/package/twemoji 并且不知道如何像这样转换字符串

'I \u2764\uFE0F emoji!'

不会

I <img class="emoji" draggable="false" alt="❤️" src="/assets/36x36/2764.gif"> emoji!

但是

I :2764: emoji!

我试过他们的 twemoji.convert.toCodePoint() 助手,像这样试过

twemoji.convert.toCodePoint('I \u2764\uFE0F emoji!');

但结果是

49-20-2764-fe0f-20-65-6d-6f-6a-69-21

它需要部分 (2764),但也转换了所有字母。所以我需要像正则表达式一样在文本中找到表情符号,但我找到的只是

var ranges = [
  '\ud83c[\udf00-\udfff]', // U+1F300 to U+1F3FF
  '\ud83d[\udc00-\ude4f]', // U+1F400 to U+1F64F
  '\ud83d[\ude80-\udeff]'  // U+1F680 to U+1F6FF
];

来自这里 http://crocodillon.com/blog/parsing-emoji-unicode-in-javascript 但它并未涵盖所有表情符号(例如没有标志)

查看库源代码后,找到简单的解决方案:

    var text = twemoji.replace(text, function(emoji) {
        return twemoji.convert.toCodePoint(emoji);
    });