【问题标题】:Laravel 8: How to validate entering dimensionsLaravel 8:如何验证输入尺寸
【发布时间】:2021-06-23 15:31:38
【问题描述】:

我有一个表单,该表单中有一个名为 dimensions 的字段,用户必须输入这样的值:10x10x10

所以我用x分隔长度、宽度和高度。

但现在我不知道如何使用 Laravel 进行此验证:

$request->validate([
     'dimensions' => 'required|max:10|min:5',
]);

那么问题来了:如何强制用户通过写x来分隔各个维度?

【问题讨论】:

标签: php laravel laravel-8


【解决方案1】:

您可以使用regex 验证规则。您可以为其提供符合您要求的pattern(在您的情况下为10x10x10)。

类似于以下内容:

'dimensions' = ['required', 'regex:/^([\d]+x){2}([\d]+)$/']

您可能希望限制它允许的位数以防止愚蠢的输入。 [\d] 后面的 + 是贪心的,会无限次匹配数字。

'dimensions' = ['required', 'regex:/^([\d]{1,5}x){2}([\d]{1,5})$/']

上述模式将位数限制为最小 1 和最大 5 ({1,5}),而不是无限制 (+)。

可能有人会建议一个更简洁的pattern

【讨论】:

  • 不需要在最后一个 [\d] 周围加上括号,而且恕我直言,没有 {n} 更容易阅读:regex:/^[\d]+x[\d]+x[\d]+$/
【解决方案2】:

您可以使用输入掩码。

https://www.npmjs.com/package/inputmask

然后在你的领域你会看到这个:

用户只需输入数字即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-14
    • 2015-04-14
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-20
    相关资源
    最近更新 更多