You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何结合required_with、sometimes与regex实现银行邮编字段验证?

正确的Laravel验证规则配置方案

你需要的验证逻辑可以通过以下规则组合实现:

"bank_info_zip" => [
    'required_with:bank_info_contact_last_name,bank_info_street,bank_info_city',
    'sometimes:filled',
    'regex:/\d{5}/'
]

规则解释:

  • required_with:当bank_info_contact_last_name、bank_info_street、bank_info_city任意一个字段存在值时,bank_info_zip会被标记为必填项,确保这三个字段有内容时邮编不能为空。
  • sometimes:filled:仅当bank_info_zip字段被填充(存在非空值)时,才应用后续的regex规则,实现“字段为空时不验证正则”的需求。
  • regex:/\d{5}/:当bank_info_zip有值时,强制验证其必须是5位数字,符合指定的格式要求。

为什么之前的配置有问题?

你之前直接添加sometimes规则但未指定filled参数,导致规则逻辑变成“只要字段存在于请求中就验证正则”——哪怕字段是空字符串,也会触发正则校验,从而出现和预期相反的结果。加上:filled参数后,就能精准控制正则规则只在字段有实际值时生效。

内容的提问来源于stack exchange,提问作者xtay2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 05:25:16