【发布时间】:2017-09-28 02:23:46
【问题描述】:
我正在使用 Laravel,并且正在尝试验证颜色字段。
此文本框应仅允许使用正则表达式模式的 HEX、rgb、rgba、hsl 和 hsla 颜色。
在我的控制器中,我有这种模式,但它没有验证我的字段值。任何字符串都会通过验证。
$this->validate($request, [
'color' => [
'required',
'regex:/(#(?:[0-9a-f]{2}){2,4}|#[0-9a-f]{3}|(?:rgba?|hsla?)\((?:\d+%?(?:deg|rad|grad|turn)?(?:,|\s)+){2,3}[\s\/]*[\d\.]+%?\))/i', // <--- not working
],
]);
谢谢。
【问题讨论】:
-
出于测试目的,请提供实际输入的简短列表,以便测试我的模式。
-
您只需要使用
^和$锚点...但是请注意您的正则表达式:它似乎匹配rgb(2,2,2,2)和rgba(3,3,3,33)(第一个不应该匹配,因为它是 rgb,而不是 rgba,并且第二个不应该匹配任何高于 1 的不透明度) -
@AbdallaArbab 请查看我的帖子我已更新,请查看演示链接