我要验证颜色输入字段。我想使用正则表达式模式检查输入值是否为十六进制颜色。
'icon_color' => 'required|regex:^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$',
这是我制定的规则,但是会出现以下错误。
preg_match():未找到定界符'/'
有人可以告诉我我在做什么错。建议表示赞赏。
答案 0 :(得分:2)
这个:icon_color' => 'required|regex:^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$'
,需要变成这个:'icon_color' => 'required|regex:/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/'
。
正则表达式本身需要用反斜杠(/
)包围,类似于Javascript将字符串视为正则表达式的方式。
答案 1 :(得分:1)
使用
regex
/not_regex
模式时,可能有必要 在数组中指定规则,而不是使用管道定界符,尤其是 如果正则表达式包含竖线字符。见 docs。
所以,尝试:
'icon_color' => ['required', 'regex:/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/']