gpt4 book ai didi

Javascript 正则表达式 : remove text between HTML tags

转载 作者:行者123 更新时间:2023-11-30 06:58:22 24 4
gpt4 key购买 nike

我想删除任何 HTML 标签之间的文本:

例子:

<div>
<h1>Title</h1>
</div>

我的 var 结果应该是:

<div>
<h1></h1>
</div>

最佳答案

如果,正如您的问题所暗示的那样,您想要从 任何 HTML 标记之间删除所有 文本……只有真正的 DOM 会删除它。

function removeAllTextNodes(node) {
if (node.nodeType === 3) {
node.parentNode.removeChild(node);
} else if (node.childNodes) {
for (var i = node.childNodes.length; i--;) {
removeAllTextNodes(node.childNodes[i]);
}
}
}

这与 textContentinnerHTML 不同,它将保留所有现有元素结构并仅删除文本。

如果您确实有一个字符串并在浏览器中使用客户端 JavaScript,并且该字符串表示文档内容的一部分(而不是整个文档——即您找不到任何 DTD、<html><head><body>个元素内),那么只要放到一个元素中就可以解析了:

var container = document.createElement("div");
container.innerHTML = htmlString;
removeAllTextNodes(container);
return container.innerHTML;

否则,您可能需要一个用于 JavaScript 的 HTML 解析器。如前所述,正则表达式不擅长解析 HTML。

关于Javascript 正则表达式 : remove text between HTML tags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20955770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com