gpt4 book ai didi

javascript - 替换几乎所有的 HTML 标签,而不是在 JS 中的字符串中

转载 作者:行者123 更新时间:2023-12-01 15:45:39 25 4
gpt4 key购买 nike

我需要从字符串中替换几乎所有的 HTML 标签。
标签的内容应该保留。
我想保留几个标签:

  • 电话
  • ul
  • ol
  • b

  • 例如。:
    INPUT:
    "<p>TEXT</p><div>container</div><p></p><ul><li><b>list element</b>: 0.1 [mm]</li><li><strong>Another list element</strong>: 0.2</li></ul><span>span element</span>"

    OUTPUT:
    "<p>TEXT</p>container<p></p><ul><li><b>list element</b>: 0.1 [mm]</li><li>Another list element: 0.2</li></ul>span element"
    我知道我可以通过一一替换所有标签来做到这一点:
    string.replace(/<\/span>/g, '');
    也许有更快的选择。
    我怎样才能实现它?

    最佳答案

    最好避免使用正则表达式来解析 Html在您的情况下,您可以使用 html 解析器,例如 DOMParser

     htmls = `<p>TEXT</p><div>container</div><p></p><ul><li><b>list element</b>: 0.1 [mm]</li><li><strong>Another list element</strong>: 0.2</li></ul><span>span element</span>`;
    let parser = new DOMParser();
    let doc = parser.parseFromString(htmls, "text/html");
    let span = doc.getElementsByTagName("span");
    let sr = doc.getElementsByTagName("strong");
    let elmarray = [...Array.from(span), ...Array.from(sr)];
    elmarray.forEach((e) => {
    e.outerHTML = e.innerHTML;
    });
    console.log(doc.body.innerHTML);

    但是,如果您的 html很简单,你可以使用 replace和谨慎的正则表达式

    html =
    "<p>TEXT</p><div>container</div><p></p><ul><li><b>list element</b>: 0.1 [mm]</li><li><strong>Another list element</strong>: 0.2</li></ul><span>span element</span>";
    r = html.replace(/(<\/?span>|<\/?strong>)/g, "");
    console.log(r);

    关于javascript - 替换几乎所有的 HTML 标签,而不是在 JS 中的字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63408474/

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