¿Cómo puedo agregar dinámicamente comas como un usuario está introduciendo números? Hay un buen número de formateador que sería de ayuda? Tengo que añadir que estos números más adelante, así que a la larga tiene que quitar las comas abajo de la línea. Pero la pantalla debe mostrar las comas para una mejor legibilidad.

  • Así que espere desea una coma para ser añadido después de cada número? Para mí escribir 123456 sería 1,2,3,4,5,6? O simplemente que la sustitución de los espacios con comas?
  • como macek respuestas, lo más probable es que quiere agregar separadores de miles.
InformationsquelleAutor Matt | 2010-04-13

3 Comentarios

  1. 88

    Ejecutar el fragmento de código para ver que funcione

    JS:

    $('input.number').keyup(function(event) {
    
      //skip for arrow keys
      if(event.which >= 37 && event.which <= 40) return;
    
      //format number
      $(this).val(function(index, value) {
        return value
        .replace(/\D/g, "")
        .replace(/\B(?=(\d{3})+(?!\d))/g, ",")
        ;
      });
    });

    HTML:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    <input class="number">

    • Usted puede saltar el tener que llamar a jQuery de nuevo en el keyup función usando esta todo. A continuación, cambie var num = $this.val().replace() para esto.valor.replace(), y $esta.val(num.replace()) a este.valor = num.replace().
    • Agradezco tu aporte, pero utilizando jQuery métodos en el costo de llamar $() es ampliamente aceptado dentro de la comunidad jQuery. Que porque jQuery tiene los métodos disponibles en el primer lugar.
    • Yo sólo estaba tratando este fragmento de código, y en Chrome y FF, se pierda la comas por 1 lugar. Por ejemplo, «1234» -> «1234» y «12345» -> «1,2345»
    • href=»http://jsfiddle.net/23Ccf/» >jsfiddle.net/23Ccf compruebe que este código le ayudará a
    • se puede resolver el problema en este código si puedo usar la tecla de retroceso coma debe estar en la posición exacta. jsfiddle.net/23Ccf
    • todo el mundo), ha sido desde hace mucho tiempo, pero he hecho las actualizaciones de este código para hacerlo un poco más fiable. La regexp ha sido mejorado para abordar algunos temas demasiado. Esto también permite que un usuario pulse la tecla de retroceso y tener comas todavía ser correcta.
    • ¿cómo podemos permitir que los decimales de hasta 2 decimales ..
    • Exactamente lo que estaba buscando
    • Ella salvó mi día y trabaja en Reaccionar Nativo perfectamente
    • no funciona cuando la entrada es declarado type = número 🙁
    • Es allí cualquier manera, si esto va a funcionar si input type="number"?
    • Fueron capaces de hacer este trabajo si input type="number"?
    • ¿cómo puedo hacer esto incluyendo decimales?

  2. 1

    Aquí está una implementación de @maček la respuesta de la vainilla JS si usted no desea utilizar jQuery:

    JS:

    var el = document.querySelector('input.number');
    el.addEventListener('keyup', function (event) {
      if (event.which >= 37 && event.which <= 40) return;
    
      this.value = this.value.replace(/\D/g, '')
                             .replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    });

    HTML:

    <input class="number">

    • sólo puedo introducir 4 dígitos aquí , ninguna razón específica , porque voy a tener más de 4 dígitos, gracias
  3. 0
            <script>
            function costt() {   
            var costs = document.getElementById('cost').value;   
                if(costs != '') {          
         //  alert("ok");     
                    cost.value = cost.value.replace(/\D/g, '').replace(/\B(?=(\d{3})+(?!\d))/g, ',');
                } else {             
         //  alert("lol");     
                    cost.value= 0;
                }        
            }
            </script>

Dejar respuesta

Please enter your comment!
Please enter your name here