如何进行密码验证,但同时将错误传递给不同的变量?
即
password: Yup.string().required("Please provide a valid password"),
passwordMin: Yup.string().oneOf([Yup.ref('password'), null]).min(8, 'Error'),
passwordLC: Yup.string().oneOf([Yup.ref('password'), null]).matches(/[a-z]/, "Error" )
passwordUC: Yup.string().oneOf([Yup.ref('password'), null]).matches(/[A-Z]/, "Error" )
我无法将密码变量的绑定绑定到密码对象
答案 0 :(得分:10)
希望这会有所帮助:
import * as Yup from 'yup';
validationSchema: Yup.object({
password: Yup.string().required('Password is required'),
passwordConfirmation: Yup.string()
.oneOf([Yup.ref('password'), null], 'Passwords must match')
});
答案 1 :(得分:3)
只需详细说明头孢菌碱的答案。
您无需将每个验证都存储在同一字段上-您可以将它们链接以获得完整的验证。
password: Yup.string()
.required('No password provided.')
.min(8, 'Password is too short - should be 8 chars minimum.')
.matches(/[a-zA-Z]/, 'Password can only contain Latin letters.')
请注意,如何仍可以为每次失败指定单独的消息。
另外,为了使绑定生效,请确保要绑定的表单输入具有适当的name
属性-在这种情况下为password
。
答案 2 :(得分:0)
我知道您可以将同一元素的验证链接在一起。如果您尝试进行交叉验证,那么本文将对您有所帮助。关于formik的反应,但我敢打赌,它将为您提供解决方案的思路。
https://itnext.io/simple-react-form-validation-with-formik-yup-and-or-spected-206ebe9e7dcc