4

我是 Regex 的新手,希望有人可以帮助我解决以下问题:

我有一个长字符串保存为变量。该字符串包含纯文本和 HTML 标签,包括。p 标签。

如何使用正则表达式从我的字符串中删除所有 p 标签,包括 p 标签上的类和 ID,但又不会丢失里面的文本?字符串变量可以包含一个、多个或不包含 p 标签,但始终至少包含一些文本。

示例: 现在的样子:

var str = Some awesome text with a <p class='myClass'>new paragraph</p> and more text.

它应该看起来如何:

var str = Some awesome text with a new paragraph and more text.

感谢您对此的任何帮助,蒂姆。

4

2 回答 2

16
result = str.replace(/(<p[^>]+?>|<p>|<\/p>)/img, "");

更新的正则表达式

于 2013-11-06T20:21:38.323 回答
7

基于这个答案,在 jQuery 中很容易做到。

var str = "Some awesome text with a <p class='myClass'>new <b>paragraph</b></p> and more text.";

var $temp = $("<div>").html(str);
$temp.find("p").each(function() {
  $(this).replaceWith(this.childNodes);
});

var output = $temp.html();

$("#original").html(str);
$("#input").text(str);
$("#output").text(output);
$("#result").html(output);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="original"></div>
<pre id="input"></pre>
<pre id="output"></pre>
<div id="result"></div>

于 2013-11-06T20:24:50.880 回答