I'm having a small issue with my Laravel rules and regex operation :
Basically a rule is an array as such :
'room'=>'required|alpha_num|min:2|max:10',
The problem i'm having is when using regex and the | (or) operator such as :
'cid'=>'required|regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i',
I'm getting a server error saying :
ErrorException
preg_match(): No ending delimiter '/' found
I'm guessing the preg_match
is stopping at the first |
inside the /.../
.
Is there anyway to write the above code to make it work ?
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)?$/'
);
In Laravel, there are Validation Rules which are predefined rules, which when used in Laravel application. There is a list of rules that can be used to validate the data being submitted by the user. Laravel Form with Validation Rules and Default Error Messages. Syntax 1: Basic validation rules.
After checking if the request failed to pass validation, you may use the withErrors method to flash the error messages to the session. When using this method, the $errors variable will automatically be shared with your views after redirection, allowing you to easily display them back to the user.
http://laravel.com/docs/validation#rule-regex
regex:pattern
The field under validation must match the given regular expression.
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.
To clarify: You would do something like this
$rules = array('test' => array('size:5', 'regex:foo'));
You should use an array
instead of separating rules using |
:
'cid' => array('required', 'regex:/^((comp)|(soen)|(engr)|(elec))\d{3}$/i')
The pipe (|
) sigh is available in your regular expression pattern so it's conflicting with the separator. Other answer already stated it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With