一尘不染

从HTML标记中删除样式属性

php

我对正则表达式不太满意,但是对于PHP,我想style从TinyMCE返回的字符串中的HTML标记中删除属性。

所以换成<p style="...">Text</p>香草<p>Test</p>

我将如何通过类似preg_replace()功能来实现这一目标?


阅读 233

收藏
2020-05-26

共1个答案

一尘不染

务实的正则表达式(<[^>]+) style=".*?"将在所有合理的情况下解决此问题。不是第一个捕获组的匹配部分应删除,如下所示:

$output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);

匹配一个<后跟一个或多个“ not
>”的字符,直到我们到达spacestyle="..."部分为止。该/i更令其一起工作STYLE="..."。将此匹配替换为$1,这是捕获的组。如果标记不包含,它将保留标记style="..."

2020-05-26