为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英546537 2022-12-22 12:59:03
如果我有一串: <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> 的方式进行操作。谢谢你。
查看完整描述

3 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

只有短语内容在p标签内有效。

可用的短语内容

让我们考虑拥有有效的 html

var 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)


查看完整回答
反对 回复 2022-12-22
?
隔江千里

TA贡献1906条经验 获得超10个赞

这里:


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);


查看完整回答
反对 回复 2022-12-22
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

function remove_tag(text, tag) {

  const regex = new RegExp(`^<${tag}>|</${tag}>$`, 'g');

  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);


查看完整回答
反对 回复 2022-12-22
  • 3 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信