Laravel模式验证管道字符问题

时间:2012-10-13 17:46:19

标签: regex validation laravel

使用Laravel框架我需要根据一组有效值检查提交字段的值。

问题是Laravel使用了|用于分隔属于字段的验证规则的字符。

工作,它会抛出

  

“preg_match:没有结束分隔符'/'找到了”:

'my_field' => 'match:/^(value1|value2|different value|yet another)$/'

如果|字符没有帮助,如何在这种情况下逃避\字符?

2 个答案:

答案 0 :(得分:39)

答案本质上是,如果您在一个字符串中指定所有规则,就像您尝试做的那样,就不能使用管道。 m.buettner提到的拉取请求已关闭。但是,Tayler Otwell提到了一种可以使用的替代方法:在数组中指定规则。这方面的一个例子是:

$rules = array(
    'field' => array('size:5', 'match:/foo|bar/')
);

答案 1 :(得分:0)

使用array()后,正则表达式模式需要包含在/.../中,以避免 preg_match():未知修饰符'|'错误