此处与此主题类似 - Array of html entities "" how to print? as unicode (not working)?
我有一个HTML实体数组(自定义字体),如下所示:
const arr = ['crop_16_9', 'computer', '3d_rotation', ''];
我唯一可以成功打印的是
:
render() {
return <span> String.fromCodePoint(parseInt(arr[0].replace(/&#x|;/g,''),16)) </span>
}
然而其他人会抛出这样的错误:
parseInt是NaN SOME_NUMBER_HERE超出String.fromCodePoint
的范围还有String.fromCodePoint和parseInt吗?
答案 0 :(得分:1)
当然,正确的解决方案是不生成包含HTML实体的JS字符串文字 - JS确实直接支持unicode - 但如果你坚持这里是如何做的。
您当前的尝试似乎仅在整个字符串是单个实体时才有效,使用replace
删除非整数部分然后获取单个字符代码。如果字符串包含普通字符和多个实体,这显然不起作用。在这种情况下,您需要用字符串中的unicode字符替换每个实体:
arr[0].replace(/&#x([0-9a-f]+);/gi, (_, code) => String.fromCodePoint(parseInt(code, 16)))