2014-01-26 57 views
2

這有點複雜。 我想編寫一個正則表達式來添加border:0;display:block如果$subject不包含,或者如果$subject的邊界不等於0 nor display:block;正則表達式添加CSS條件如果滿足特定條件

例如,如果$subject是:

案例1:

color:white 

preg_replace後,如果將返回

color:white;border:0;display:block 

案例2:

color:white;border:1px; 

的preg_replace後,如果將返回

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; 

回答

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;" 
+0

聽起來不錯。謝謝 – user3204729

+0

$ css = preg_replace('/;?\ s *(border | display)\ s *:\ b [^;] +;?/','',$ css); –

+0

@JOELEE,謝謝你的評論。我更新了答案。 (Droped'\ b') – falsetru