javascript - RegEx 删除背景颜色和颜色属性,但将所有样式保留在 php 中

标签 javascript php jquery css preg-replace

我仍然无法记住使用正则表达式,因此无法找到最终解决方案以使用 RegEx 从表格中去除背景颜色、字体系列和颜色属性,但保留所有样式

我已经尝试使用正则表达式来删除除颜色和背景属性之外的所有样式。 但实际上我想删除背景颜色、字体系列和颜色属性,但保留所有样式

if(isset($_REQUEST["Save"])) {
    $VariantName = $_REQUEST["name"];
    $desc = preg_replace('/(<[^>]+\s+)(?:style\s*=\s*"(?!(?:|[^"]*[;\s])color\s*:[^";]*)(?!(?:|[^"]*[;\s])background-color\s*:[^";]*)[^"]*"|(style\s*=\s*")(?=(?:|[^"]*[;\s])(color\s*:[^";]*))?(?=(?:|[^"]*)(;))?(?=(?:|[^"]*[;\s])(background-color\s*:[^";]*))?[^"]*("))/i', '', $VariantName);
    echo $desc;
}

这个

<p style="font-family:Garamond;font-size:8px;line-height:14px;color:#FF0000;background-color:red;">example</p>

应该变成:

<p style="font-size:8px;line-height:14px;">example</p>

最佳答案

我不推荐这样做,但你可以使用这个正则表达式来删除你想要的 CSS Prop :

/(background-color|color|font-family)\:\#?\w+\;/i

示例:

<?php
            //Enter your code here, enjoy!
    $string = '<p style="font-family:Garamond;font-size:8px;line-height:14px;color:#FF0000;background-color:red;">example</p>';
    $pattern = '/(background-color|color|font-family)\:\#?\w+\;/i';
    $replacement = '';
    echo preg_replace($pattern, $replacement, $string);

关于javascript - RegEx 删除背景颜色和颜色属性,但将所有样式保留在 php 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57865148/

相关文章:

javascript - 在扩展中,回调会累积并持续到浏览器重新启动为止

javascript - 使用JavaScript的C3数据的数据结构/格式

php - GoInstant REST API 'Remove a Key' 不传播事件

jquery - Superscrollorama onPin 弄乱了我的布局

javascript - 有没有一种简单的方法可以在 React.JS 中包含像 DataTables 这样的 jQuery UI 插件?

javascript - 如何获取输入的值并分配一个与他没有关联的标签

php - 检测网站上的 Facebook 页面粉丝

php - 根据用户输入显示表单字段

javascript - 从 DOM 中删除元素并将它们添加回原来的位置

javascript - jQuery keyUp 函数触发多次,即使事件只发生一次