Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的正则表达式删除嵌套段落 保留此内容 _Javascript_Jquery_Regex - Fatal编程技术网

Javascript中的正则表达式删除嵌套段落 保留此内容

Javascript中的正则表达式删除嵌套段落 保留此内容 ,javascript,jquery,regex,Javascript,Jquery,Regex,使用已应用的样式保存内容和最后一段, 那是 对于您提供的具体案例,请尝试以下简单代码: <p style="text-align: right;"> <p style="text-align: center;"> <p style="text-align: left;"> <p style="text-align:center;"> leave this content

使用已应用的样式保存内容和最后一段, 那是


对于您提供的具体案例,请尝试以下简单代码:

<p style="text-align: right;">
   <p style="text-align: center;">
      <p style="text-align: left;">
         <p style="text-align:center;">
            leave this content
         </p>
      </p>
   </p>
</p>
<br>
对于更通用的情况,您必须使用HTML解析器。

Regex是

var elementToKeep = $('selectorToParagraph');

elementToKeep.html(elementToKeep.text());

(.*?)

那就试试这个

<p style="(.*?)">(.*?)<\/p>
content=content.replace(“

(.*)”,“

$2

”;
我试试这个

content = content.replace("<p style="(.*?)">(.*?)<\/p>","<p style="$1">$2</p>");
]+)?>((?:(?!])*)
将样式更改为段落的右侧。这只有在正则表达式中才可能


请参见演示:

预期输出请您在问题上书写。它在外部,并且可能超过两个或三个预期输出:

保留此内容
使用HTML解析器而不是正则表达式。正则表达式是错误的工具:1。它们在匹配分组结构方面并不好——没有JS的正则表达式引擎所没有的扩展,2。有。不幸的是,嵌套段落是无效的HTML,否则jQuery可以轻松做到这一点:(好的,我应该如何用最后一个段落包装内容问题是rich editor错误地读取了嵌套段落的样式

<p(?: [^>]+)?>((?:(?!<\/?p[ >]).)*)<\/p>