【问题标题】:Hex code validation not working in laravel [duplicate]十六进制代码验证在laravel中不起作用[重复]
【发布时间】:2019-05-02 07:27:00
【问题描述】:
我想验证颜色输入字段。我想使用正则表达式检查输入值是否为十六进制颜色。
'icon_color' => 'required|regex:^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$',
这是我制定的规则,但它给出了以下错误。
preg_match(): 没有找到结束分隔符'/'
谁能告诉我我做错了什么。欢迎提出建议。
【问题讨论】:
标签:
regex
laravel
validation
rules
【解决方案1】:
当使用 regex / not_regex 模式时,可能需要
在数组中指定规则而不是使用管道分隔符,尤其是
如果正则表达式包含管道字符。见
docs.
那么,试试吧:
'icon_color' => ['required', 'regex:/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/']
【解决方案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 将字符串视为正则表达式的方式。