【问题标题】: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 将字符串视为正则表达式的方式。

    【讨论】:

    • 还是一样的错误
    猜你喜欢
    • 2019-07-11
    • 2013-04-16
    • 1970-01-01
    • 2014-01-28
    • 2013-08-21
    • 2016-09-22
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    相关资源
    最近更新 更多