【问题标题】:Laravel Validation 'starts_with' alphaLaravel 验证 'starts_with' alpha
【发布时间】:2020-09-04 23:19:38
【问题描述】:

我希望对用户输入字段使用 Laravel 验证,除了我希望强制执行的一条规则之外,所有这些都运行良好:如何确保字段以 alpha 开头(它允许在其他地方使用 alpha_dash)。我尝试了 PHP 'regexp' 版本 [A-Za-z](如下面的代码 sn-p 所示)但无济于事。我也试过 'starts_with:alpha' 也无济于事。我希望避免使用正则表达式等,如果没有简单的解决方案,我宁愿等待 Laravel 解决方案。

谢谢!

'username' => 'required|starts_with:[A-Za-z]|alpha_dash|max:20|unique:users,username',
'firstname' => 'required|starts_with:[A-Za-z]|alpha_dash|max:20',
'lastname' => 'required|starts_with:[A-Za-z]|alpha_dash|max:30',

【问题讨论】:

    标签: laravel validation


    【解决方案1】:

    试试这条规则,而不是alpha_dash & starts_with

    'required|min:2|max:30|regex:/^[A-Z][a-zA-Z0-9_-]+$/'
    

    【讨论】:

    • 感谢 Makdous 的快速回复。我尝试将其添加到这样的规则中:'required|min:2|max:30|regex:/^[az|AZ][a-zA-Z0-9_-]+$/' 但出现错误“preg_match( ): 未找到结束分隔符 '/'"。我会搜索错误消息,看看我是否可以让它工作,会尽快回复。
    • 我看到错误是因为正则表达式中有一个管道。我想将其保留为字符串而不是数组,因为我在特征中使用它,并且此后希望初始字符为大写字母。因此,有了这些约束,当我将规则修改为:'required|min:2|max:30|regex:/^[AZ][a-zA-Z0-9_-]+$/' 时,您的规则运行良好,再次感谢您!
    猜你喜欢
    • 2016-03-10
    • 1970-01-01
    • 2020-07-07
    • 2013-03-15
    • 1970-01-01
    • 2016-09-01
    • 2020-08-14
    • 2015-06-06
    相关资源
    最近更新 更多