【问题标题】:Remove everything between tag Regex删除标记正则表达式之间的所有内容
【发布时间】:2017-07-06 15:37:52
【问题描述】:

我正在尝试删除任何 html 标记中的所有内容:

输入:

<a class="yoyo"> <h1 id="test"> hello </h1> </a>

奇怪的例子,但很好

输出:

<a><h1>hello</h1></a>

我试过/(&lt;\w)(?:.*)(&gt;)/gmi 但它不起作用...

如果您对此有任何线索。 谢谢


因此,为了在您发表评论后进行更多解释,我删除了一个网站,并且我有一个想要清理的 .txt 文件。它将包含页面的整个 html,我想清理每个 html 标记并删除空格。 所以应该删除任何 之间的所有内容。

【问题讨论】:

  • 你能详细说明一下吗? html标签里面可以有一百万个html标签,你到底想做什么?
  • 正则表达式是否必须将“hello”更改为“salut”并删除空格?只是开玩笑说你好,但我对空间很认真..
  • 不要使用正则表达式。
  • 为什么不使用 JS 实用程序(特别适合解析和操作标记)而不是使用正则表达式 (terrible choice for parsing HTML)
  • 必须链接到“那个帖子” George!!! 握拳

标签: javascript regex


【解决方案1】:

使用 DOM 方法执行此操作。遍历所有元素,迭代属性并删除它们

let cont = document.getElementById('demo-container'),
  els = cont.querySelectorAll('*');

[].slice.call(els).forEach(el => {
  [].slice.call(el.attributes).forEach(attr => {
    el.removeAttribute(attr.name);
  })
});

console.log(cont.innerHTML)
<div id="demo-container">
  <a class="yoyo">
    <h1 id="test"> hello </h1>
  </a>
</div>

【讨论】:

    【解决方案2】:

    下面的正则表达式怎么样:

    <[^>]*>
    

    您必须连接所有匹配项。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多