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);
});
我正在使用这个库 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);
});