如何在React中从文本中呈现HTML标记



我正在进行文本高亮显示,我能够检测选择等。现在我有了类似的东西

Te<span>x</span>t

字符串和

["Te", "<span>", "x", "</span>", "t"]

在数组中。如何以安全的方式使用react进行渲染?顺便说一句,DangerouslysetinnerHTML在这里不起作用(可能需要一个钩子之类的,但它不安全,所以最好使用其他东西(。

*这些跨度的数量可能会发生变化,因此可能会有很多标签。

编辑:我的算法为文本制作一个掩码(一个满零的数组(,每当用户选择某个东西时,它就会在数组中的某些字段上加1(比如区间(。然后,它解析文本和掩码,当出现例如01时,它将开始标记粘贴在两者之间(当10=>结束标记时(。实现类似Medium的突出显示功能的其他方法是什么?

提前感谢

当你试图用dangerouslySetInnerHTML来呈现用户内容时,它是危险的。我的意思是,用注入的<spans>来呈现字符串并不比原始字符串更危险。如果你想净化字符串,你可以在突出显示之前进行。

<div dangerouslySetInnerHTML={{ __html: "Te<span>x</span>t" }} />

相关内容

  • 没有找到相关文章

最新更新