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

378
Visualizações
¿Cómo validar correctamente los valores decimales?

Estoy escribiendo una función de desinfección de campo de entrada que debería verificar si ese valor de entrada es decimal o no.

Casos de prueba:

  • 1234 - cierto
  • 12.34 - verdadero
  • 0.123 - verdadero
  • 000045 - verdadero
  • 000.45 - falso
  • .45685 - falso
  • 5..454 - falso
  • 55874. - verdadero
  • 000000 - verdadero
  • 0.0. - falso

No quiero mostrar un error de validación, solo quiero evitar que los usuarios escriban un valor decimal incorrecto.

Esta expresión regular /^[0-9]+\.?[0-9]+/ cubre todos los casos excepto el 5to punto. Supongo que aquí el único método a usar es String.prototype.replace() para cortar los caracteres incorrectos no deseados.

PD Esta validación es bastante similar a la validación nativa de HTML input type number , excepto el quinto punto, que se acepta como un tipo de número válido.

¡ACTUALIZADO!

 const rgx = /^[0-9]+\.?[0-9]+$/ const cases = [ ["1234", true], ["12.34", true], ["0.123", true], ["000045", true], ["000.45", false], [".45685", false], ["5..454", false], ["55874.", true], ['000000', true], ['0.0.', false], ] cases.forEach(([str, result]) => { const actual = rgx.test(str); if (actual !== result) { console.log(`Test case "${str}" failed, gave ${actual} but expected ${result}.`); } });

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

0

Podría probar si la cadena no comienza con 2 o más ceros

 ^(?!00+\.)[0-9]+\.?[0-9]*$

Demostración de expresiones regulares

Tenga en cuenta que su patrón ^[0-9]+\.?[0-9]+$ coincide con al menos 2 dígitos, ya que solo la coma es opcional.

 const rgx = /^(?!00+\.)[0-9]+\.?[0-9]*$/ const cases = ["1234", "12.34", "0.123", "000045", "000.45", ".45685", "5..454", "55874.", "000000", "0.0." ] cases.forEach(s => console.log(`${s} --> ${rgx.test(s)}`));

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