Validar input solo decimal y coma

publicado por: Anonymous

Saludos deseo validar un input que reciba solo valores decimales con punto algo asi:

1350.85
10328.84
1.25
225.75

para lo cual tengo el siguiente codigo que he intentado:

_x000D_

_x000D_

$('.decimales').on('input', function () {_x000D_
  this.value = this.value.replace(/[^0-9,]/g, '').replace(/,/g, '.');_x000D_
});

_x000D_

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>_x000D_
<input type="text" class="decimales">

_x000D_

_x000D_

_x000D_

Como verán acepta solo valores numéricos lo cual esta bien pero al momento de poner una coma reemplaza por el punto y si coloco un numero se borra el punto, agradezco cualquier sugerencia..!!

solución

Ibas bien encaminado, pero te faltó un pequeño detalle:

Cuando la entrada contiene un punto (bien porque el usuario ya lo introdujo correctamente desde el principio, o bien porque fue remplazado una vez el usuario lo introdujo), tienes que ser capaz de mantener ese punto. Y con el primer replace lo estás eliminando.

Ten en cuenta que ejecutas ambos replaces cada vez que el usuario pulsa una tecla.

Esta expresión regular replace(/[^0-9,]/g, '') Significa borrar cualquier cosa que no sea números o una coma. Así que es normal que te borre el punto. Simplemente añade el punto a esa lista de caracteres.

Así pues, esto debería funcionar:

_x000D_

_x000D_

$('.decimales').on('input', function () {_x000D_
  this.value = this.value.replace(/[^0-9,.]/g, '').replace(/,/g, '.');_x000D_
});

_x000D_

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>_x000D_
<input type="text" class="decimales">

_x000D_

_x000D_

_x000D_

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *