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)
以上と以下の意味にするlessThan
とmoreThan
もあります。
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'])