2017-03-14 53 views
0

我点击一个API端点,它将博客文章的HTML作为字符串返回。因此,在响应字符串中有大量<p>标记,<img>,<span><div>标记,其中嵌套的元素数量非常不重要。使用React组件解析和包装HTML字符串

在一个反应​​应用程序中,我想解析这个HTML字符串,并用自定义反应组件替换一些HTML元素(图像,段落)(即在延迟加载反应组件中包装图像标记)。

什么是一个很好/干净的方式来做到这一点?试图用正则表达式解析HTML似乎是一种反模式,我不确定还有其他可能的选择。将字符串解析为传统的dom节点,然后遍历集合?

当前我只是使用dangerouslySetInnerHTML呈现反应组件内的html-as-string。

什么是可靠的,非正则表达式的方式来包装html-as-a-string实体与React组件,同时保持节点的原始顺序(即在博客文章中)?

+1

不解析HTML与正则表达式或者[Zalgo会毁了你](HTTP: //stackoverflow.com/a/1732454/5647260) – Li357

+0

@AndrewLi yup!正是我为什么说我不想。我不想让Zalgo找到我:) – Prefix

回答

1

看看这个模块,看看它是否可以帮助你:(​​)。基本上,你可以:

  1. 将HTML转换串反应组件节点
  2. 替换元素的儿童