当前位置: 首页 > 面试题库 >

从HTML标记中删除样式属性

栾耀
2023-03-14
问题内容

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

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

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


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我有这个HTML代码: 但它应该变成(对于所有可能的html标签): 问题答案: 改编自我对类似问题的回答 RegExp细分: 添加一些引号,并使用替换文本,它应该删除标记名之后的所有文本,直到标记结尾或just 为止。 请注意, 这不一定适用于 所有 输入,因为Anti-HTML + RegExp会告诉您。有一些后备功能,最明显的是会失败,还有其他一些坏的问题…我建议将Zend_Fi

  • 什么是正确的方法来删除只有HTML标签(保留所有自定义/未知的标签)与JSOUP(不是正则表达式)? 预期输入: 预期产出: 我尝试使用白名单清洁剂。none(),但它也会删除自定义标记。 我也尝试过: 但是它也删除了自定义标签。 这个答案对我不好,因为自定义标记的数量是无限的。

  • 有人有更好的主意吗?

  • 问题内容: 我想显示数据库条目的前110个字符。到目前为止很简单: 但是上面的条目中包含由客户端输入的html代码。因此它显示: 显然没有好处。 我只想剥离所有html代码,所以我需要从数据库条目中删除<和>之间的所有内容,然后显示前100个字符。 有任何想法吗? 问题答案: 采用

  • 问题内容: 这个问题已经在这里有了答案 : 从字符串中删除HTML标签 (31个答案) 4年前关闭。 是否存在可以完全删除HTML标签的正则表达式?顺便说一句,我正在使用Java。 问题答案: 您应该改用HTML解析器。我喜欢htmlCleaner,因为它为我提供了漂亮的HTML打印版本。 使用htmlCleaner,您可以执行以下操作:

  • 如何(使用PHP)从具有特定类的div中删除样式属性?因为“拖累” 我知道我可以在“拖动”后用JavaScript删除样式属性