使用Laravel框架我需要根据一组有效值检查提交字段的值。
问题是Laravel使用了|用于分隔属于字段的验证规则的字符。
这不工作,它会抛出
“preg_match:没有结束分隔符'/'找到了”:
'my_field' => 'match:/^(value1|value2|different value|yet another)$/'
如果|
字符没有帮助,如何在这种情况下逃避\
字符?
答案 0 :(得分:39)
答案本质上是,如果您在一个字符串中指定所有规则,就像您尝试做的那样,就不能使用管道。 m.buettner提到的拉取请求已关闭。但是,Tayler Otwell提到了一种可以使用的替代方法:在数组中指定规则。这方面的一个例子是:
$rules = array(
'field' => array('size:5', 'match:/foo|bar/')
);
答案 1 :(得分:0)
使用array()后,正则表达式模式需要包含在/.../中,以避免 preg_match():未知修饰符'|'错误