我正在React中制作一个应用程序,该应用程序可以接收特定的html页面并在React中转换为页面,但是当在<Text>
中放入一些字符串时,这些字符不会转换:
—
的表示形式为—
。
这些字符叫什么?在React中有没有一种方法可以将这些字符转换为相应的文本?
答案 0 :(得分:2)
这些符号称为 HTML符号实体。 普通键盘上不存在技术和货币符号。
如果不存在实体名称,则可以使用实体编号,小数或 十六进制参考。
您知道的单个html实体的快速解决方法:
<Text>
{yourText.replace(/—/gi, '-')}
</Text>
您可以使用this npm模块在渲染之前解码文本:
多个html实体的示例
const re = /&[^\s]*;/gi;
const allHtmlEntities = [];
while ((match = re.exec(youtText)) != null) {
const htmlEntity = yourText.substring(match.index, 7);
if (allHtmlEntities.indexOf(htmlEntity) === -1) {
allHtmlEntities.push(htmlEntity);
}
}
const entities = new Entities();
for (let i = 0; i < allHtmlEntities.length; i++) {
const decodedValue = entities.decode(allHtmlEntities[i]);
yourText = yourText.replace(new RegExp(allHtmlEntities[i], 'g'), decodedValue);
}