【问题标题】:Include global search in Laravel Validation在 Laravel 验证中包含全局搜索
【发布时间】:2016-03-22 05:06:17
【问题描述】:

我希望 'name' 属性只包含字母字符、数字和空格。一切都好。我已经在http://regexr.com/ 上对其进行了测试,但是当我使用 Laravel 运行它时,我得到了“preg_match(): Unknown modifier 'g'”错误

public function rules()
{
    return
    [
        'name' => ['regex:/([A-Za-z0-9 ])*/g']
    ];
}

我一直在搜索,但我得到的只是“使用 preg_match_all() 方法”,但我该怎么做呢?

【问题讨论】:

    标签: laravel-5 laravel-validation


    【解决方案1】:

    g 在 PHP 中是 not a valid PCRE modifier

    也就是说,要只允许字母数字和空格,您可以使用如下规则:

    regex:/^[A-Za-z0-9 ]*$/
    

    ^ 表示字符串的开头,$ 表示结尾。

    在 Laravel 的股票规则不适用的情况下,您还可以选择 creating a custom modifier(您可以随意使用 preg_match_all)。

    【讨论】:

    • 注意:我从你的正则表达式中取出了(),因为这里不需要它们。
    • 谢谢!我创建了一个自定义验证,它就像一个魅力!
    • @ggderas 我不确定preg_match_all 是你想要的。它会找到字母数字/空格字符,但不会验证字符串是否这些字符。考虑改用修改后的正则表达式。
    猜你喜欢
    • 1970-01-01
    • 2018-08-06
    • 2018-09-15
    • 2015-06-24
    • 1970-01-01
    • 2016-10-26
    • 2016-02-14
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多