npm install -d yup
use:
import * as Yup from 'yup'
ex 定義日期格式範例:
import * as Yup from 'yup';
import Moment from 'moment';
import Formik from 'formik'
export default () => {
const schema = Yup.object({
startTime: Yup.number().default(Moment().startOf('day').valueOf()),
// 結束時間小於起始時間時顯示提示
endTime: Yup.nember().min(Yup.ref('startTime'), '起始時間需小於結束時間').default(Moment().endOf('day').valueOf())
})
return (
<Formik
initialValues={schema.cast()}
validationSchema={schema}
>
</Formik>
)
}
.test() ⇒ 可以自定義驗證規則
const schema = Yup.object({
account: Yup.string().test({
test: value => /^[a-zA-Z0-9]$/.test(value),
params: { number: 123 }
message: '禁止輸入特殊字元${number}'
})
})
matches ⇒ 可用來匹配正規是校正
https://pjchender.dev/npm/npm-yup/#mixedtest用來建立自訂的驗證邏輯
const schema = Yup.object({
account: Yup.string().matches(/[a-zA-Z0-9]/, '不可輸入特殊字元').required("Account為必填"),
})