正则表达式在满足特定条件时添加CSS条件

时间:2014-01-26 08:42:59

标签: php regex preg-replace

这有点复杂。 如果border:0;display:block不包含,或者$subject的边框不等于$subject

,我想写一个正则表达式来添加0 nor display:block;

例如,如果$subject是:

案例1:

color:white
preg_replace之后

将返回

color:white;border:0;display:block

案例2:

color:white;border:1px;

在preg_replace之后if将返回

color:white;border:0;display:block

案例3:

color:white;display:inline
preg_replace之后

将返回

color:white;display:block;border:0;

案例4:

{empty}
preg_replace之后

将返回

border:0;display:block;

1 个答案:

答案 0 :(得分:3)

如何删除borderdisplay属性,然后追加您想要的属性?

function no_border($css)
{
    $css = preg_replace('/;?\s*(border|display)\s*:[^;]+;?/', '', $css);
    return ltrim(rtrim($css, ';') . ';border:0;display:block;', ';');
}

no_border('color:white');                // "color:white;border:0;display:block;"
no_border('color:white;border:1px;');    // "color:white;border:0;display:block;"
no_border('color:white;display:inline'); // "color:white;border:0;display:block;"
no_border('');                           // "border:0;display:block;"