我仍然无法真正使用正则表达式,因此找不到最终解决方案,无法使用RegEx从表中去除背景色,字体系列和color属性,但保留所有样式
我尝试过使用正则表达式删除所有样式,但颜色和背景属性除外。
但实际上我想删除背景颜色,字体系列和颜色属性,但保留所有样式
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
道具:
/(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删除背景色和color属性,但将所有样式保留在php中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57865148/