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:
myproject123
myproject
MyProject
Invalid values for project name:
123myproject
!myproject
myproject 123
my project
my project123
I tried my regex online:
https://regex101.com/r/FylFY1/2
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
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' =>
array(
'required',
'regex:/(^([a-zA-Z]+)(\d+)?$)/u'
)
];
You can read on the official docs:
regex:pattern
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.
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