识别 CSS 函数的正则表达式

问题描述 投票:0回答:1

我有一个名为 $value 的变量,其中包含带有 css 表达式的字符串。它可以是一个值或一个函数:

rgb( 25, 128, 128 );
transform( -50% -50% );
bottom 50px right 100px;
#198080;
bold;
1px solid red;

我希望能够识别表达式是否包含函数或字符串

$real_value = (is_numeric($value)) ?
    $value :
    (is_string($value) ?
        (preg_match('/^\w/', $value) ? $value : '"' . $value . '"') :
        '"'. $value . '"');

这个想法是将引号内的值分配给

$real_value
,如下所示:
"#198080";
或this
"bottom 50px right 100px";
,但如果它是一个函数,则只需返回相同的表达式。

我开始创建正则表达式,但我无法在不破坏它的情况下越过第一个括号:

/^\w\-?\w?\(/

所以我需要创建一个正则表达式来检查字符串是否具有 css 函数的结构。它们并不多(https://www.w3schools.com/cssref/css_functions.php)或者只写一个检查括号

php regex preg-match
1个回答
0
投票

尝试这样使用

$real_value = preg_match('/^[a-zA-Z\-]+\s*\(.*\)$/', $value) ? $value : '"' . $value . '"';
© www.soinside.com 2019 - 2024. All rights reserved.