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

Unicode value in template literal for emoji

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

如何实现这个目的?

Javascript代码:

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

Javascript 错误:

SyntaxError: Invalid escape sequence in template

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

开发者控制台:

'\u{1F60E}'

控制台输出: ""

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

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

而不是这个

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

使用fromCodePoint函数。

这是一个可行的解决方案

const unifiedValue = '1F60E';

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

console.log(emoji);

另请记住,我们的 "beloved" Internet Explorer 不支持它:/

编辑

const unifiedValue = '1F60E';

var emoji = parseInt(unifiedValue, 16);

emoji = String.fromCodePoint(emoji);

console.log(emoji);