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

760
Vistas
El error joi 17.6.0 no tiene sentido según la regla: alphanum devuelve un error en una cadena vacía

Estoy usando joi para la validación de front-end en React. No uso joi-browser ya que me dijeron que estaba obsoleto. Aquí hay una parte del esquema joi:

 schema = Joi.object({ namePrefix: Joi.string() .trim() .alphanum() .regex(/[ab]/i) .min(0) .max(100) .messages({ "string.pattern.base": "Name parts should be letters only", }), givenName: Joi.string() .trim() .alphanum() .regex(/[ab]/i) .min(1) .max(100) .messages({ "string.pattern.base": "Name parts should be letters only", }) .required()});

Aquí hay una función de actualización de accesorios que también realiza la validación:

 handleUpdateProp = (e, propName) => { const rule = this.schema.extract(propName); const subSchema = Joi.object({ [propName]: rule }); const propValue = e.target.value; const objToValidate = { [propName]: propValue }; const { error } = subSchema.validate(objToValidate); const validationResult = error ? error : null; const validationError = validationResult ? validationResult.details[0].message : null; const stateErrors = this.state.errors; stateErrors[propName] = validationError; this.setState({ [propName]: propValue, errors: stateErrors, }); };

namePrefix y GivenName corresponden a campos de formulario y un div se representa condicionalmente debajo de ellos si hay un error para ese campo. Si escribo un carácter en namePrefix, no hay error: Hasta ahora, todo bien. Cuando elimino el carácter, joi devuelve el error '"namePrefix" solo debe contener caracteres alfanuméricos'

Ejemplo: eliminar caracteres arroja un error alfanum...

Obviamente, no se debe devolver ningún error porque se permite que la cadena esté vacía. ¿Por qué está pasando esto? ¡Por favor ayuda!

about 4 years ago · Juan Pablo Isaza
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