gpt4 book ai didi

javascript - 从字符串中删除 HTML 标签及其内容 - Javascript

转载 作者:行者123 更新时间:2023-12-03 08:00:20 26 4
gpt4 key购买 nike

假设我有以下字符串: const test = "This is outside the HTML tag. <title>How to remove an HTML element using JavaScript ?</title>";

我想删除该字符串中所有 HTML 标记内的内容。我试过做 test.replace(/(<([^>]+)>)/gi, '') ,但这只会删除 HTML 标签,而不是其中的所有内容。我希望结果只是“这是在 HTML 标记之外。”。

是否可以删除字符串中的 HTML 标签及其内容?

最佳答案

与尝试通过正则表达式删除 HTML 元素相比,使用以下方法创建和填充 DOM 片段要简单得多:

let myDiv = document.createElement('div');
myDiv.innerHTML = test;

然后删除 <title>元素,使用:

myDivTitle = myDiv.querySelector('title');
myDiv.removeChild(myDivTitle);

工作示例(一个元素):

const test = "This is outside the HTML tag. <title>How to remove an HTML element using JavaScript ?</title>";

let myDiv = document.createElement('div');
myDiv.innerHTML = test;
myDivTitle = myDiv.querySelector('title');
myDiv.removeChild(myDivTitle);
const testAfter = myDiv.innerHTML;
console.log(testAfter);


上述内容适用于一个元素( <title> ),但您指出:

I'd like to remove the content within all HTML tags in that string

所以让我们尝试一些更雄心勃勃的事情,使用:

myDiv.querySelectorAll('*')

工作示例(所有元素):

const test = "<title>How to remove an HTML element using JavaScript ?</title> This is outside the HTML tag. <h1>Here we go...</h1> So is this. <p>This is going to save a lot of time trying to come up with regex patterns</p> This too.";

let myDiv = document.createElement('div');
myDiv.innerHTML = test;
myDivElements = myDiv.querySelectorAll('*');

for (let myDivElement of myDivElements) {
myDiv.removeChild(myDivElement);
}

const testAfter = myDiv.innerHTML;
console.log(testAfter);

关于javascript - 从字符串中删除 HTML 标签及其内容 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74517628/

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