Laravel6で正規表現を使ったバリデーションを行っています。
下のいずれかの条件に合致すれば可です。
0
2桁までの整数(99)
2桁までの整数+2桁までの小数(99.99)
そこで以下のようなルールを書きました。
php
1public function rules() 2{ 3 return [ 4 'price.*.*' => 'numeric|regex:/^0$|^\d{1,2}(.\d{1,2})$/', 5 ]; 6}
しかし、これではデリミタが見つからないというエラーが出てしまいました。
[2020-09-10 12:54:09] local.ERROR: preg_match(): No ending delimiter '/' found {"userId":1,"exception":"[object] (ErrorException(code: 0): preg_match(): No ending delimiter '/' found at /var/www/laravel/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php:1359) [stacktrace] #0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(2, 'preg_match(): N...', '/var/www/portal...', 1359, Array) #1 /var/www/laravel/vendor/laravel/framework/src/Illuminate/Validation/Concerns/ValidatesAttributes.php(1359): preg_match('/^0$', '1.05') #2 /var/www/laravel/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(469): Illuminate\Validation\Validator->validateRegex('price.1.1', '1.05', Array, Object(Illuminate\Validation\Validator)) #3 /var/www/laravel/vendor/laravel/framework/src/Illuminate/Validation/Validator.php(311): Illuminate\Validation\Validator->validateAttribute('price.1.1', 'Regex')
バリデーションに正規表現を使う場合、orをどう表せばよいのでしょうか?
環境
Laravel Framework 6.18.37
PHP 7.3.10 (cli)
CentOS Linux release 7.7.1908 (Core)
回答1件
あなたの回答
tips
プレビュー