Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

772
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!