表情符号的模板文字中的Unicode值

时间:2018-05-16 10:15:11

标签: javascript unicode emoji template-literals

当我尝试使用字符串模板生成表情符号时,我收到错误。

如何达到这个目的?

Javascript代码:

const unifiedValue = '1F60E';
const emoji = `\u{${ unifiedValue }}`;

Javascript错误:

  

SyntaxError:模板中的转义序列无效

当然,如果我直接使用该值,它会起作用,但这容易出错+数千行代码,有数百if个条件。

开发者控制台:

'\u{1F60E}'

控制台输出:     “”

2 个答案:

答案 0 :(得分:3)

使用fromCodePoint功能。

这是一个令人讨厌的解决方案

const unifiedValue = '1F60E';

var emoji = `0x${unifiedValue}`;
emoji = String.fromCodePoint(emoji);

console.log(emoji);

另请注意,我们的“心爱的”互联网浏览器不支持它:/

enter image description here

修改

const unifiedValue = '1F60E';

var emoji = parseInt(unifiedValue, 16);

emoji = String.fromCodePoint(emoji);

console.log(emoji);

答案 1 :(得分:0)

我认为这里的问题是你用模板报价。您必须在模板引用中使用双反斜杠。

const emoji = `\u{${ unifiedValue }}`;

而不是这个

const emoji = `\\u{${ unifiedValue }}`;