JS Regex删除所有没有样式的HTML标签[关闭]

ni65a41a  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(77)

已关闭,此问题需要更focused。它目前不接受回答。
**想改善这个问题吗?**更新问题,使其只关注editing this post的一个问题。

4天前关闭。
Improve this question
我想删除所有的HTML标签,除了那些与风格|text-align。这里是示例HTML标记。

<p>no style</p>
<p style="text-align:center">with style</p>
<h1 style="text-align:center">center header</h1>
<h1>no style header</h1>

我的预期输出应该是:

no style
<p style="text-align:center">with style</p>
<h1 style="text-align:center">center header</h1>
no style header

有了这个,我将只删除没有样式或文本对齐的HTML标签。
先谢谢你了。

gstyhher

gstyhher1#

一般来说,使用正则表达式解析HTML不是一个好主意。
如果你使用的是JavaScript,你可以使用浏览器内置的HTML解析器来实现你的目标:

const template = document.createElement('template');
template.innerHTML = `
<p>no style</p>
<p style="text-align:center">with style</p>
<h1 style="text-align:center">center header</h1>
<h1>no style header</h1>
`;

[...template.content.querySelectorAll(':not([style])')].forEach(e => {
  e.insertAdjacentText('afterend', e.innerText);
  e.remove();
});

console.log(template.innerHTML);

相关问题