Php 正则表达式在Laravel中的使用

Php 正则表达式在Laravel中的使用,php,regex,Php,Regex,这是我的Laravel代码: $validator = \Validator::make($val, [ 'service_activity' => 'required|max:1000', 'inspired' => 'required', 'obstacles' => 'required|max:1000', 'wo

这是我的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);
我想使用regex作为
working\u on\u activity
中的字段,但总是得到相同的错误。我在Laravel文档中给出的数组中使用了正则表达式:

键入“:”ErrorException“,”消息“:”preg_match():未找到结尾分隔符“^”

改变

使用
#
作为分隔符。 (这是基于您关于缺少分隔符的错误消息。)

更改

'regex:^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)$'

使用
#
作为分隔符。
(这是基于您关于缺少分隔符的错误消息。)

可能是这样-添加两个斜杠
'regex://(1[0-2]|0[1-9]|\d)\/(20\d{2}19\d{2}0(?!0)\d{124; 1-9]\d)$/'
?您需要在模式周围添加分隔符(例如
/
)。顺便说一句:
“在活动上工作”
=>
“在活动上工作”
大家好。看起来您正在用小写字母书写所有标题。当编辑阅读你的问题时,错误可能会随着时间的推移而改善,因此如果你能在标题开头使用大写字母,对于像Laravel这样的品牌,这将节省一些未来的努力。谢谢!@谢谢,你解决了我的问题。也许是这样-添加两个斜杠
'regex://(1[0-2]| 0[1-9]|\d)\/(20\d{2}19\d{2}0(?!0)\d{1-9]\d$/'
?需要在模式周围添加分隔符(例如
/
)。顺便说一句:
“在活动上工作”
=>
“在活动上工作”
大家好。看起来您正在用小写字母书写所有标题。当编辑阅读你的问题时,错误可能会随着时间的推移而改善,因此如果你能在标题开头使用大写字母,对于像Laravel这样的品牌,这将节省一些未来的努力。谢谢!@谢谢,你解决了我的问题。
'regex:#^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d)$#'