Wednesday, 17 May 2017

php - Laravel preg_match(): No ending delimiter '/' found



Im working on Laravel 4.2. Im trying to use Validator to validate a name field with regex, here is my rule below:



 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

Answer



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:




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.



No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...