我正在研究Laravel 4.2.我正在try 使用Validator验证带有正则表达式的名称字段,下面是我的规则:

 public static $rules_save = [

        'class_subjects' => 'required|regex:/[0-9]([0-9]|-(?!-))+/'
    ];

But as soon as I call the rule to be validated an error is thrown, see below:

preg_match(): No ending delimiter '/' found

推荐答案

Since your regex has a pipe in it, you have to use an array:

public static $rules_save = [
    'class_subjects' => ['required', 'regex:/[0-9]([0-9]|-(?!-))+/'],
];

From the docs:

使用regex模式时,可能需要在数组中指定规则,而不是使用管道分隔符,尤其是当正则表达式包含管道字符时.

Laravel相关问答推荐

如何在 Laravel 中使用 return 停止 Trait php 的执行

导出所有客户端不起作用,文件保存时没有名称和扩展名

如何使用动态翻译键翻译 Laravel硬编码字符串(还有 1 个错误)..(验证异常类)

使用命令行界面停止 laravel 服务器

为什么命令php artisan serve不起作用

Laravel - 将变量从中间件传递到控制器/路由

在 apache docker 容器中运行虚拟主机

如何在 laravel 中使用 str_replace

Laravel 5.x 中 onUpdate / onDelete 的可用操作

条带 api 判断现有卡

在 Laravel 的 Homestead 中运行 PHPUnit

如何使用命令行手动运行 laravel/lumen 作业(job)

Laravel:自定义或扩展通知 - 数据库模型

禁用Eager的关系

Laravel 4:将什么作为参数传递给 Url 类?

Laravel 验证:数字和整数之间的区别?

Eloquent 模型不更新 updated_at 时间戳

如何以及在哪里可以使用 laravel 存储图像?

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

如何在 Laravel 5.3 中获取当前的语言环境