【发布时间】:2015-10-04 06:54:50
【问题描述】:
这是我的 Laravel 代码:
$validator = \Validator::make($val, [
'service_activity' => 'required|max:1000',
'inspired' => 'required',
'obstacles' => 'required|max:1000',
'working_on_acitivity' => array('required', 'regex:^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)$'),
'spend_time' => 'required',
'activity_impact' => 'required|max:1000',
'fund_raising' => 'required',
'raised_amount' => 'required|numeric',
'people_involved' => 'required|numeric',
'learned_from_experience' => 'required|max:1000',
],$messages);
我想对working_on_acitivity 中的字段使用正则表达式,但总是遇到同样的错误。我在 Laravel 文档中给出的数组中使用了正则表达式:
type":"ErrorException","message":"preg_match(): 没有找到结束分隔符'^'
【问题讨论】:
-
也许是这样 - 添加 2 个斜线
'regex:/^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)$/'? -
您需要在模式周围添加分隔符(例如
/)。顺便说一句:'working_on_acitivity'=>'working_on_activity' -
您好。看起来您正在用小写字母书写所有标题。当编辑阅读您的问题时,错误可能会随着时间的推移而得到改善,因此如果您可以在标题开头使用大写字母,并且对于 Laravel 等品牌名称,这将节省一些未来的工作量。谢谢!
-
@splash58 谢谢,你解决了我的问题。