十六进制代码验证在laravel中不起作用[重复]
Posted
技术标签:
【中文标题】十六进制代码验证在laravel中不起作用[重复]【英文标题】:Hex code validation not working in laravel [duplicate] 【发布时间】:2019-05-02 07:27:00 【问题描述】:我想验证颜色输入字段。我想使用正则表达式检查输入值是否为十六进制颜色。
'icon_color' => 'required|regex:^#([A-Fa-f0-9]6|[A-Fa-f0-9]3)$',
这是我制定的规则,但它给出了以下错误。
preg_match(): 没有找到结束分隔符'/'
谁能告诉我我做错了什么。欢迎提出建议。
【问题讨论】:
【参考方案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 将字符串视为正则表达式的方式。
【讨论】:
还是一样的错误以上是关于十六进制代码验证在laravel中不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章