如何使用 Javascript 删除最外层的 XML 元素标签对?

如果我有一串:

 <p> Abcdefg <note> abcdefg <p> abcdefg </p> <p> abcdefg </p> </note> </p>

我想从 Javascript 中的字符串中删除最外面的一对,在本例中是第一个 <p> 和最后一个 </p>,这样结果将是一个字符串:

 Abcdefg <note> abcdefg <p> abcdefg </p> <p> abcdefg </p> </note>

我该怎么做?我尝试过使用 Regex 和 Jquery,但我无法以不删除其他内部 <p> 和 </p> 的方式进行操作。

谢谢你。


慕桂英546537
浏览 125回答 3
3回答

慕田峪7331174

只有短语内容在p标签内有效。可用的短语内容让我们考虑拥有有效的 htmlvar str = ' <p> Abcdefg <span> abcdefg <span> abcdefg </span> <span> abcdefg </span> </span> </p>'var res = $(str).html()console.log(res)<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>使用正则表达式var str = '<p> Abcdefg <note> abcdefg <p> abcdefg </p> <p> abcdefg </p> </note> </p>'var res = str.replace(/\<(.*?)\>(.*)\<\/(\1)\>/g, '$2')console.log(res)

隔江千里

这里:const regex = /<(?<tag>\w+)>(?<content>.*)<\/\k<tag>>/;const str = '<p> Abcdefg <note> abcdefg <p> abcdefg </p> <p> abcdefg </p> </note> </p>';const result = str.replace(regex, '$2');console.log(result);

慕婉清6462132

function remove_tag(text, tag) {&nbsp; const regex = new RegExp(`^<${tag}>|</${tag}>$`, 'g');&nbsp; return text.replace(regex, "").trim();}let text = "<p> Abcdefg <note> abcdefg <p> abcdefg </p> <p> abcdefg </p> </note> </p>";const result = remove_tag(text, "p");console.log(result);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript