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

176
Visualizações
Permitir escribir el signo menos al comienzo de un número durante la validación de entrada en vivo de enteros o flotantes de longitud específica con hasta dos dígitos decimales

Quiero permitir que el usuario ingrese un valor decimal con un máximo de 9 dígitos enteros y un máximo de 2 decimales después del punto. Pero también este valor puede ser negativo, con signo "-". Todo está bien, excepto este signo menos. Aunque sitios como "regexp.online" muestran que mi expresión regular está bien, no funciona en js+jquery. El signo menos falla la verificación. Ver:

 $('[name="price"]').bind("change keyup input", function() { pricecheck = '^(\\-)?\\d{1,9}(\\.\\d{0,2})?$'; var regex = new RegExp(pricecheck, 'g'); if (!regex.test(this.value)) { console.log('not in regex'); this.value = this.value.slice(0, -1); } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input name="price" style="height:20px;">

Y violín - https://jsfiddle.net/obc6qptf/

Probé este "menos" sin barras invertidas: el mismo resultado. ¿Qué está mal?

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

0

Necesita usar una expresión regular que coincida con el primer dígito opcionalmente:

 const regex = /^-?\d{0,9}(?:\b\.\d{0,2})?$/;

Tenga en cuenta que el límite de palabra \b se usa para asegurarse de que . el separador no viene justo después de - , y si lo necesita, elimine \b del patrón.

Detalles :

  • ^ - comienzo de la cadena
  • -? - un - carácter (opcional)
  • \d{0,9} - cero a nueve dígitos
  • (?:\b\.\d{0,2})? - una secuencia opcional de
    • \b - un límite de palabra para requerir un dígito (aquí) antes de .
    • \. - un punto
    • \d{0,2} - cero, uno o dos dígitos
  • $ - final de la cadena.

Vea la demostración de JavaScript:

 $('[name="price"]').bind("change keyup input", function() { const regex = /^-?\d{0,9}(?:\b\.\d{0,2})?$/; if (!regex.test(this.value)) { this.value = this.value.slice(0, -1); } });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input name="price" style="height:20px;">

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