我尝试使用正则表达式验证名为'name'
的输入,验证输入将类似于:2018/2019
。
我的代码:
$this->validate($request, [
'name' => 'required|regex:[0-9]{4}/[0-9]{4}'
]);
我遇到此错误:
preg_match():未知的修饰符' {'
更新:解决了,我只需要添加 () 这是正确的代码:
$this->validate($request, [
'name' => 'required|regex:([0-9]{4}/[0-9]{4})'
]);
答案 0 :(得分:0)
当你有验证规则regex:XXX
时,会发生什么基本上是Laravel运行:
preg_match(XXX, $fieldValue);
因此,您需要确保您拥有有效的正则表达式,即在您需要的情况下:
$this->validate($request, [
'name' => 'required|regex:#[0-9]{4}/[0-9]{4}#'
]);
注意我已经使用#
所以我不需要逃避正则表达式中的/
所有有效的分隔符正则表达式列表包括, 如上所述in the manual:
/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%
(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>