よく使う Yup バリデーション

String

min(n)max(m)両方設定して「n未満とmより大きいのは駄目」なスキーマができます。

yup.string().min(2).max(30)

emailでメールアドレスじゃないと弾かれるスキーマができます。

yup.string().email()

urlで URI な形以外の文字列が弾かれるスキーマができます。

yup.string().url()

Number

min(n)max(m)両方設定して「数値がn未満とmより大きいのは駄目」なスキーマができます。

yup.number().min(10).max(100)

以上と以下の意味にするlessThanmoreThanもあります。

yup().number().lessThan(10).moreThan(100)

Array

input[type=checkbox]などで必須チェックを実装する時に使えます。チェックされた時は['on']、そうでない場合は[]となるので、

yup.array().required()

で確認できます。配列のrequiredは要素数が0だと偽として扱います。

Mixed

mixedを使うと「AかBか…どれかなら大丈夫」といったスキーマを作れます。

oneOfを使うと渡した値のどれかなら大丈夫なスキーマができます。

// input からの場合すべて文字列なので
// 33 (数値)ではバリデーションが通らない
yup().mixed().oneOf(['nju', '33'])