我的Laravel规则和regex操作有一个小问题:
基本上,规则是这样的数组:
'room'=>'required|alpha_num|min:2|max:10',
我遇到的问题是使用正则表达式和|时。(或)运算子,例如:
'cid'=>'required|regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i',
我收到服务器错误消息:
ErrorException preg_match(): No ending delimiter '/' found
我猜preg_match在第一停止|内/.../。
preg_match
|
/.../
无论如何有写上面的代码使其工作吗?
完整代码:
public static $rules = array( 'cid' => array('required', 'regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i'), 'description'=>'required|regex:/^[A-Za-z \t]*$/i|min:3|unique:courses', 'credits'=>'required|regex:/^\d+(\.\d)?$/' );
http://laravel.com/docs/validation#rule- regex
regex:模式 验证中的字段必须匹配给定的正则表达式。 注意: 使用正则表达式模式时,可能需要在数组中指定规则,而不要使用管道定界符来指定规则,尤其是在正则表达式包含管道字符的情况下。
regex:模式
验证中的字段必须匹配给定的正则表达式。
注意: 使用正则表达式模式时,可能需要在数组中指定规则,而不要使用管道定界符来指定规则,尤其是在正则表达式包含管道字符的情况下。
澄清一下:您将执行以下操作
$rules = array('test' => array('size:5', 'regex:foo'));