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

442
Visualizações
Eliminar espacios en blanco en Express Validator

No soy muy bueno con las expresiones regulares, pero estoy usando lo siguiente en la interfaz con Joi para eliminar los espacios en blanco de un número de teléfono para la validación. Parece funcionar:

entrada: 0758541287 8

Válido:

Joi.string().trim().replace(/\s*/g,"").pattern(new RegExp(/^0([1-6][0-9]{8,10}|7[0-9]{9})$/))

Mi servidor usa express-validator , y me sorprende que esto no elimine los espacios:

No es válido:

 body('phone') .isString() .replace(/\s*/g,"") .matches(/^0([1-6][0-9]{8,10}|7[0-9]{9})$/) .withMessage('Please enter a UK phone number'),

Tampoco funciona:

 body('phone') .isString() .custom(value => Promise.resolve(value.replace(/\s*/g, ""))) .matches(/^0([1-6][0-9]{8,10}|7[0-9]{9})$/) .withMessage('Please enter a UK phone number'),

Error de validacion:

 validationErrors: [ { value: '0748431287 8', msg: 'Please enter a UK phone number', param: 'phone', location: 'body' } ],

Podría eliminar los espacios antes de realizar la solicitud, pero me interesa saber por qué esto no se comporta como me imagino.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Su método de validación personalizado devuelve undefined (porque eso es lo que devuelve console.log(...) ), lo que se interpreta como que el campo no es válido.

Además, la documentación de replace no menciona expresiones regulares. ¿Quizás reemplaza solo subcadenas?

Finalmente, las matches tampoco aparecen en la documentación.

Puede usar las funciones normales de Javascript para replace y match dentro de un método de validación personalizado:

 body("phone") .isString() .custom(value => value.replace(/\s*/g, "") .match(/^0([1-6][0-9]{8,10}|7[0-9]{9})$/)) .withMessage("Please enter a UK phone number")
about 4 years ago · Juan Pablo Isaza Relatório
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