如何编写正则表达式识别CSS函数,处理PHP样式值变量
问题:判断CSS表达式类型并处理赋值逻辑
场景描述
我有一个PHP变量$value,存储的是包含CSS表达式的字符串,它有两种可能的形式:
- CSS函数,例如:
rgb( 25, 128, 128 )、transform( -50% -50% ) - 普通CSS值,例如:
bottom 50px right 100px、#198080、bold、1px solid red
处理需求
需要实现如下判断与赋值逻辑:
- 如果是普通CSS值字符串:给
$real_value赋值时要包裹双引号,比如转为"#198080"或"bottom 50px right 100px" - 如果是CSS函数:直接返回原表达式内容
现有代码
我当前编写的PHP代码如下:
$real_value = (is_numeric($value)) ? $value : (is_string($value) ? (preg_match('/^\w/', $value) ? $value : '"' . $value . '"') : '"'. $value . '"');
待解决问题
我尝试用正则表达式识别CSS函数,但现有正则/^\w\-?\w?\(/无法正确匹配所有情况,需要编写一个能准确识别CSS函数结构的正则表达式(可通过函数的括号特征来判断)。
内容的提问来源于stack exchange,提问作者Tales
相关产品推荐
相关产品推荐

