Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

249
Vistas
Usando express-validator y regex para hacer coincidir matrices de UUIds

Tengo algún contenido de req.body que quiero validar. Usé esta línea para tener una idea de cómo se ven los datos cuando se pasan a la función de validación:

 body('ids').custom(value => {return console.log(value)} )

Y eso produce esto:

 [ 'D93A4C60-C09A-47FF-B87F-28732B6FEB79', 'D93A4C60-C09A-47FF-B87F-28732B6FEB79' ]

Cabe señalar que esa matriz tiene una longitud arbitraria mayor o igual a 1.

Quiero validar esto con la siguiente verificación corporal:

 body('ids', 'error message').matches(REGEX)

A continuación se muestra la expresión regular que he hecho.

 (\['[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}')(,'[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}')+\]

Cada vez que pruebo esa expresión regular en esta herramienta ( https://regexr.com/ ) funciona pero no se valida correctamente en mi aplicación Express y creo que se debe a los saltos de línea, pero no estoy seguro de cómo verificar o validar que.

¿Hay una mejor manera de manejar lo que estoy tratando de hacer aquí?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¿Por qué no usa un validador personalizado y luego itera a través de la lista de valores? Luego, puede probar manualmente cada elemento de la lista con su expresión regular. Creo que la función express-validator matches() es más adecuada para parámetros individuales. Esta es mi opinión sobre cómo manejar este problema:

 body('ids').custom(value => { value.forEach(element => { if (!value.match('[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}')) { throw new Error('Invalid Input!') }; });

})

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda