Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

405
Visualizações
¿Cómo podemos usar una matriz de valores de expresiones regulares en Sí, en función de un valor de formulario?

React v16, formik, sí.

Estoy creando un formulario en el que un usuario primero debe seleccionar su estado. este es un campo de selección.

Hay un segundo campo para la licencia, que requerirá una validación diferente según el estado. Tengo una lista de valores de expresiones regulares que funcionan bien si agrego uno directamente a Sí. por ejemplo:

 export const form = Yup.object().shape({ state: Yup.string().required(), license: Yup.string() .when("required", { is: (required) => required === true, then: Yup.string() .required("This field is required") .matches(/^[0-9]{14}$/, "Please enter the ID in the proper format"), }),

el código anterior, expresión regular codificada, funciona muy bien.

la pregunta es ¿cómo puedo devolver un valor de expresión regular en lugar de /^[0-9]{14}$/ , desde una matriz que tengo con todos los valores de expresión regular? cuando un usuario elige un estado, quiero que esa expresión regular se cambie por su licencia.

Intenté agregar funciones (me mantuve alejado del uso de funciones de flecha globalmente en el esquema de validación de Yup debido a problemas con el enlace a esto según sus documentos en Yup

otra cosa que he intentado es agregar un campo en mi formulario llamado "regex". esto se establece cuando el usuario elige su estado en el formulario. es un campo invisible que establecí con Formik.setFieldValue que conserva la expresión regular, a la que puedo llamar desde la validación. no funciona

 license: Yup.string() .when(["required", regex], { is: (required) => required === true, then: (regex) => Yup.string() .required("This field is required") .matches(regex, "Please enter the ID in the proper format"),

incluso cuando intento crear una nueva expresión regular con js, no hay suerte

 .matches(new RegExp(/^[0-9]{14}$/), "Please enter the ID in the proper format"),

parece que puedo hacer este trabajo 1 vez, pero en los cambios de estado, el valor en formik nunca se vuelve a evaluar.

para reiterar mi pregunta: ¿Cómo puedo agregar expresiones regulares dinámicas para un campo en Sí, en función de un segundo campo?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda