LoginSignup
3
4

More than 3 years have passed since last update.

laravel-バリデーション正規表現(パイプ「|」利用)(頭が0つきの数字)

Last updated at Posted at 2019-05-29

バリデーション時に、正規表現のパイプを利用し、00、01、02、0、1、2の値のみを通すようなバリデーションを作成しようと思います。

php
$this->validate($request, [
    'number' =>['required', 'regex:/^([0-2]|0[0-2])$/'];
]);

パイプを使う際は、'required|regex:/^([0-2]|0[0-2])+$/'と一行で、バリデーションルールを書いてしまうと、Laravel上だと、バリデーションごとにパイプを挟んでいるため、正規表現の中のパイプが他のバリデーションルールに切り替わったのかなとLaravelは判断するため、エラーになってしまいます。そのため、配列で一つずつ指定してあげる必要があります。

/^([0-2]|0[0-2])$/は「^」が行頭、「\$」が行末、パイプがor、[]は○○から○○まで、つまり0~2までもしくは、00~02となります。
前書いた正規表現記事
参考にさせていただいた記事-laravelバリデーション正規表現パイプ

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4