表情符号模板文字中的 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);
当我尝试使用字符串模板生成表情符号时出现错误。
如何实现这个目的?
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);