如何使用/解析JavaScript字符串中的HTML实体和Unicode字符

问题描述 投票:1回答:1

我想在JavaScipt字符串中使用‌ °℃,但这不起作用:

const str = `‌   ° ℃`;

如果我执行console.log(str),我希望看到类似这样的内容(请注意,‌将不可见,而 只会看起来像是常规空格):

   ° ℃

我见过this other question,建议的解决方案是将这些实体更改为十六进制等效项,但这是不可能的,因为此字符串来自后端,并且这些实体已经存在。

javascript html unicode encoding html-entities
1个回答
2
投票

即使HTML实体已经以某种方式存在于该字符串中,也需要用其实际字符或等效的escape notation替换它们。

如果它们已经不在字符串中,一种选择就是只查找它们:

或计算它们:

或者,如果您可以从其他地方键入或复制粘贴原始字符,则可以使用DEGREE CELSIUS (℃)获取其十进制Unicode代码,该代码将以给定索引返回UTF-16十进制代码单位,以及0x2103,使用其8451参数将该十进制转换为十六进制:

2103

然后使用String.prototype.charCodeAt()用其Unicode代码表示它们。请注意,根据代码,我们使用String.prototype.charCodeAt()Number.prototype.toString()表示法:

Number.prototype.toString()

在您的情况下,您需要解析该字符串,提取实体并将其替换为它们代表的实际字符。

我制作了此代码段,以便您可以粘贴字符或编写HTML实体并获取其Unicode代码,但这也将为您提供有关如何动态解析这些HTML实体的示例:

radix
'°'.charCodeAt(0); // 176
'°'.charCodeAt(0).toString(16); // "b0"
escape notation
© www.soinside.com 2019 - 2024. All rights reserved.