从文本中去除标签(在 React JS 中)

Rad*_*ník 4 javascript regex dom replace reactjs

我在变量cleanHTML 中有多个完整的 html 代码,我需要从文本中删除特定标签。

let cleanHTML = document.documentElement.outerHTML
Run Code Online (Sandbox Code Playgroud)

这个:

<span class="remove-me">please</span>
<span class="remove-me">me too</span>
<span class="remove-me">and me</span>
Run Code Online (Sandbox Code Playgroud)

对此:

please
me too
and me
Run Code Online (Sandbox Code Playgroud)

我正在尝试这样做:

var list = cleanHTML.getElementsByClassName("remove-me");
var i;
for (i = 0; i < list.length; i++) {
  list[i] = list[i].innerHTML;
}
Run Code Online (Sandbox Code Playgroud)

但是我从 React cleanHTML.getElementsByClassName 中得到错误不是函数

知道如何以 React 喜欢的方式做到这一点吗?

小智 9

cleanHtml是一个字符串而不是一个节点。所以getElementsByClassName不适用,因为它不是字符串函数

您可以使用正则表达式来执行此操作。以下代码可能会有所帮助。

var stripedHtml = cleanHtml.replace(/<[^>]+>/g, '');
Run Code Online (Sandbox Code Playgroud)

并且stripedHtml将拥有没有标签的 html 内容。