Pregunta Comas jugando con la entrada de números en Javascript


Tengo una página con algunos elementos que están controlados por el usuario. Uno de estos es un campo de entrada de texto, donde el usuario debe ingresar un número. Todo funciona bien si el usuario solo ingresa dígitos (EG 9000), pero si el usuario usa la notación de coma (el ser 9,000) javascript no toma la entrada como un entero.

¿Cómo puedo eliminar las comas y / o forzar la entrada a un número entero? Intenté usar parseint (), pero no parece funcionar con comas.


20
2018-02-14 13:44


origen


Respuestas:


Usa una expresión regular global para reemplazar todas comas con una cadena vacía:

var str = "12,345,678";
str = str.replace(/,/g, "");
parseInt(str, 10);

42
2018-02-14 13:51



o mejor

var s="jdjsghd0182.99";
var str = parseFloat(s.replace(/[^0-9 | ^.]/g, ''));

3
2018-05-01 22:14



O incluso mejor, dada la falta de fiabilidad general de la entrada del usuario, utilícela para deshacerse de todos los caracteres no numéricos:

var s = "9, Ljk876";
var t = parseInt (s.replace (/ [^ 0-9] / g, ''));
alerta ("s:" + s + ", t:" + t);


0
2018-02-14 15:16



tal vez

 parseint(ny9000withCommas.replace(/\,/g,""))

vamos a hablar sobre la restricción:

puede / debe permitir al usuario ingresar tanto 9000 como 9,000

puede verificar válidamente a través de REGEX.

en el lado del servidor: debe eliminar las comas y tratarlas como un número entero.


-1
2018-02-14 13:46