javascript - php中RGBA值的正则表达式

标签 javascript php regex rgba

这是我在 PHP 中的 RGBA 值的正则表达式。 它应该接受百分比模式和非百分比模式。

function isValidColor_RGBA($color){


$pattern = "rgba\(
         ((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}
         ((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)
         (,\s*(0\.\d+|1))
         \)
        |rgba\(((\d|[1-9]\d|100)%\,\s?){3}(0|0?\.\d+|1|1\.0+)\)";



return (preg_match("<$pattern>", $color) == 1)? true : false;
}

这在这个 JS 测试器中有效: https://regex101.com/r/A2IjNO/4 但在 php 中不起作用。 这有什么问题吗? 提前致谢。

最佳答案

您可以尝试删除新行和不需要的空格吗?

我在 www.regex101.com 中尝试使用以下表达式

^(#[\da-f]{3}|#[\da-f]{6}|rgba(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2} ((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)(,\s*(0.\d+|1)))|hsla(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0.\d+|1)))|rgb(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)|hsl(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)))$

新行和空格似乎给 PHP 正则表达式验证带来了问题。该表达式适用于 jsPHP

我在 enter link description here 中尝试了以下代码

$pattern = '/^(\#[\da-f]{3}|\#[\da-f]{6}|rgba\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2} ((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)(,\s*(0\.\d+|1))\)|hsla\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)(,\s*(0\.\d+|1))\)|rgb\(((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*,\s*){2}((\d{1,2}|1\d\d|2([0-4]\d|5[0-5]))\s*)|hsl\(\s*((\d{1,2}|[1-2]\d{2}|3([0-5]\d|60)))\s*,\s*((\d{1,2}|100)\s*%)\s*,\s*((\d{1,2}|100)\s*%)\))$/';
$color = 'rgba(222, 222, 222, 0.5)';
var_dump(preg_match($pattern, $color));

请记住,您需要添加空格。因为,您在逗号符号之前/之后添加了 \s

关于javascript - php中RGBA值的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48294251/

相关文章:

javascript - 在 Chart.js 中格式化条形图 Y 轴标签

javascript - 如何正确删除 Node js eventemitter 中的事件监听器

php - 准备好的查询,错误# of variables != # of parameters error

java - 匹配最多 2 位小数的数字的正则表达式

java - 使用 java 模式和匹配器从字符串中提取变量字符串和数字

javascript - 在 Canvas 中移动圆圈

javascript - Ajax卡在beforeSend阶段,不向PHP发送数据

php - 如何防止浏览器超时(长 PHP 脚本)

php - MySQL/PHP 从多个表中选择和计数

javascript - 匹配内部代码,无论任何换行文本如何