Ниже мое правило для названия проекта:
$this->validate(request(), [ 'projectName' => 'required|regex:/(^([a-zA-z]+)(\d+)?$)/u', ];
Я пытаюсь добавить правило таким образом, что оно должно начинаться с буквы из az
или Az
и может заканчиваться цифрами, но в большинстве случаев нет.
Допустимые значения для имени проекта:
myproject123 myproject MyProject
Недопустимые значения для имени проекта:
123myproject !myproject myproject 123 my project my project123
Я пробовал мое регулярное выражение онлайн:
https://regex101.com/r/FylFY1/2
Он должен работать, но я могу пройти проверку даже с project 123
.
UPDATE : Он действительно работает, я просто тестировал его в неправильном контроллере, им жаль … но, возможно, это все равно поможет другим
Ваше правило хорошо сделано, но вам нужно знать, что правила проверки с регулярным выражением, разделенные конвейером, могут привести к нежелательному поведению.
Правильный способ определения правила проверки должен быть:
$this->validate(request(), [ 'projectName' => array( 'required', 'regex:/(^([a-zA-Z]+)(\d+)?$)/u' ) ];
Вы можете прочитать официальные документы:
регулярное выражение: шаблон
Поле под проверкой должно соответствовать данному регулярному выражению.
Примечание. При использовании шаблона регулярного выражения может потребоваться указать правила в массиве вместо использования ограничителей каналов , особенно если регулярное выражение содержит символ канала.