Home » Php » php – Laravel 5.4 – Validation with Regex

php – Laravel 5.4 – Validation with Regex

Posted by: admin April 23, 2020 Leave a comment


Below is my rule for project name:

$this->validate(request(), [
    'projectName' => 'required|regex:/(^([a-zA-z]+)(\d+)?$)/u',

I am trying to add the rule such that it must start with a letter from a-z or A-z and can end with numbers but most not.

Valid values for project name:


Invalid values for project name:

myproject 123
my project
my project123

I tried my regex online:

enter image description here


It should work, but I can pass the validation even with project 123.

UPDATE: It actually works, I just tested it in the wrong controller, im sorry… but maybe it will help others nevertheless

How to&Answers:

Your rule is well done BUT you need to know, specify validation rules with regex separated by pipeline can lead to undesired behavior.

The proper way to define a validation rule should be:

$this->validate(request(), [
    'projectName' => 

You can read on the official docs:


The field under validation must match the given regular expression.

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