Intereting Posts
PHP private const Вызов функции класса ONE из класса TWO без расширения? Преобразование индексированного массива в обычный или простой массив Возвращение модели Eloquent в качестве JSON в Laravel 4 как остановить повторное ввод данных в базу данных при обновлении страницы Выбор данных таблицы MySql в массив Онлайн-приложение для голосования. Как избежать повторного голосования от одного и того же пользователя OpenCart показать изображения категорий на главной странице? Как я могу отобразить отформатированную дату из метки времени Unix в twig? Как я могу указать массив объектов в PhpDoc Как запросить встроенные документы ссылочным документом? Как найти максимальную и минимальную дату в массиве? Как начать использовать и разрабатывать на Ubuntu Linux? Перенаправить произвольный субдомен на страницу с помощью $ _get info PHP is_file возвращает false (неправильно) для общего ресурса Windows на Ubuntu

Laravel 5.4 – Проверка с регулярным выражением

Ниже мое правило для названия проекта:

$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 : Он действительно работает, я просто тестировал его в неправильном контроллере, им жаль … но, возможно, это все равно поможет другим

Related of "Laravel 5.4 – Проверка с регулярным выражением"

Ваше правило хорошо сделано, но вам нужно знать, что правила проверки с регулярным выражением, разделенные конвейером, могут привести к нежелательному поведению.

Правильный способ определения правила проверки должен быть:

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

Вы можете прочитать официальные документы:

регулярное выражение: шаблон

Поле под проверкой должно соответствовать данному регулярному выражению.

Примечание. При использовании шаблона регулярного выражения может потребоваться указать правила в массиве вместо использования ограничителей каналов , особенно если регулярное выражение содержит символ канала.

https://laravel.com/docs/5.4/validation#rule-regex