十六进制代码验证在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中不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

注册在 Laravel 5 中不起作用

护照身份验证在 laravel 5.3 中不起作用

Laravel 验证“存在”在主从数据库配置中不起作用?

文本区域验证最大规则在 laravel 6 中不起作用

Laravel 5.6 护照 API 身份验证在获取请求中不起作用

Laravel Sanctum Token API 身份验证在 Postman 中不起作用