【发布时间】:2017-03-14 22:50:50
【问题描述】:
我正在访问一个 API 端点,它将博客文章的 HTML 作为字符串返回。响应字符串中有很多<p> 标记、<img>、<span> 和<div> 标记,其中包含大量元素嵌套。
在反应应用程序中,我想解析这个 HTML 字符串,并用自定义反应组件替换一些 HTML 元素(图像、段落)(即在延迟加载反应组件中包装图像标签)。
有什么好的/干净的方法来做到这一点?尝试使用正则表达式解析 HTML 似乎是一种反模式,我不确定还有哪些其他可能的选择。将字符串解析成传统的dom节点,然后遍历集合?
目前我只是使用dangerouslySetInnerHTML 将 html-as-string 呈现在一个反应组件中。
什么是可靠的、非正则表达式的方式来用 React 组件包装 html-as-a-string 实体,同时保持节点的原始顺序(即在博客文章中)?
【问题讨论】:
-
不要使用 RegEx 解析 HTML,否则 Zalgo will destroy you
-
@AndrewLi 是的!正是我说我不想的原因。我不想让 Zalgo 找到我 :)
标签: string parsing reactjs elements