web-dev-qa-db-fra.com

validation de mot de passe avec yup et formik

comment procéder pour valider un mot de passe tout en transmettant les erreurs à différentes variables?

c'est à dire

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" )

Je n'arrive pas à obtenir la liaison des variables de mot de passe à lier avec l'objet de mot de passe

10
Strahinja Ajvaz

Juste pour développer la réponse de l'éfleurine.
Vous n'avez pas besoin de stocker chaque validation sur le même champ - vous pouvez les chaîner pour obtenir une validation complète.

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.')

Notez comment vous pouvez toujours spécifier des messages individuels pour chaque échec.
De plus, pour que la liaison fonctionne, assurez-vous que l'entrée de formulaire à laquelle vous liez possède un attribut name approprié - dans ce cas, password.

10
VBorisoff

Je sais que vous pouvez enchaîner les validations pour le même élément. Si vous essayez de faire une validation croisée, cet article vous aidera. à propos de formik in react mais je parie que cela vous donnerait une idée de la façon de résoudre votre cas.

https://itnext.io/simple-react-form-validation-with-formik-yup-and-or-spected-206ebe9e7dcc

0
efleurine