正则表达式去除Div标签

6
我有一个div标签,嵌套在许多span和div标签中。
现在我想要在JavaScript中使用正则表达式来去除div标签并获取其中的内容。

1
你真的需要处理字符串吗?还是可以使用DOM来处理?你能举个例子吗? - Gumbo
1
你应该使用HTML解析器,而不是正则表达式...请参见https://dev59.com/X3I-5IYBdhLWcg3wq6do#1732454。在JavaScript中,你应该能够使用DOM访问器函数。 - TJ Ellis
这是一个可以满足你需求的正则表达式:(!?(<.*?>)|[^<]+)\s* 它适用于所有被 < > 包围的标签。 - true_gler
2个回答

6
您想从文档中删除一个
元素吗?
首先,要学习DOM!
var aReferenceToMyDiv = document.getElementById('foo');
aReferenceToMyDiv.parentNode.removeChild(aReferenceToMyDiv);

当应用于以下DOM结构时,<div>元素将被移除:

<div id="foo">
    <span>...</span>
    other stuff...
</div>

3

正则表达式无法处理嵌套,至少JavaScript的正则表达式无法处理(而那些可以处理嵌套的,比如.NET和PCRE,也不容易处理)。

只有当存在一个最外层的<div>标签时,这才能起作用 - 然后正则表达式

/<div>.*<\/div>/s` 

将匹配文档中第一个<div>到最后一个</div>之间的所有内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接