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為必填"),
})