我的Laravel规则和regex操作有个小问题:

基本上,规则就是这样一个数组:

'room'=>'required|alpha_num|min:2|max:10',

我遇到的问题是在使用regex和|(或)运算符时,例如:

'cid'=>'required|regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i',

I'm getting a server error saying :

ErrorException

preg_match(): No ending delimiter '/' found

我猜preg_match应该停在/.../里面的第一个|.

有没有什么办法可以编写上面的代码来使其工作呢?

Full code :

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

正则表达式:模式

验证中的字段必须与给定的正则表达式匹配.

Note: When using the regex pattern, it may be necessary to specify rules in an array instead >of using pipe delimiters, especially if the regular expression contains a pipe character.

要澄清,请执行以下操作: 你会做这样的事

$rules = array('test' => array('size:5', 'regex:foo'));

Laravel相关问答推荐

AJAX响应中未定义的全名

Livewire 基于下拉 Select 自动填充输入框

如何避免谷歌翻译翻译:参数

"public/index.php" 可以在 laravel 中按组写入

Laravel 不验证是否不需要字段

Laravel - 加载常见的页眉和页脚以查看

Laravel Blade 模板 @foreach 订单

Laravel 4,如何测试复选框是否被选中?

Laravel 扩展验证自定义消息

Laravel 5 - 没有重叠的任务计划不起作用

laravel 中的 Http Post 使用 fetch api 给出 TokenMismatchException

升级到 Laravel 5.2 会使所有会话失效

Laravel 在特定文件夹中创建迁移文件

扩展 Eloquent 的类的构造函数

Laravel5如何将数组传递给查看

Laravel 字符串验证以允许空字符串

Laravel 在域和子域中共享 cookie 检测问题

Laravel 4 - 一个表单中有两个提交按钮,并且两个提交都由不同的操作处理

Laravel 从公共删除目录

Laravel - artisan不工作