Tengo una función de JavaScript que acepta un número y realiza una operación matemática en el número. Sin embargo, el número que estoy pasando podría tener una coma, y por mi experiencia limitada con Javascript, estoy teniendo problemas para trabajar con ese valor. No parece tratar eso como un tipo numérico.

¿Cuál es la forma más fácil de tomar un parámetro con un valor de 1,000 y convertirlo en un 1000 numérico?

27
Mike Cole 7 may. 2009 a las 07:53

4 respuestas

La mejor respuesta

Puede configurar su cuadro de texto para que tenga una función onblur () de modo que cuando el usuario intente abandonar el cuadro de texto, luego elimine las comas del valor utilizando el reemplazo de JavaScript función

ejemplo :

  function checkNumeric(objName)
  {
    var lstLetters = objName;

    var lstReplace = lstLetters.replace(/\,/g,'');
  }  

Con la etiqueta de entrada aquí:

<input type="text" onblur="checkNumeric(this);" name="nocomma" size="10" maxlength="10"/>
35
scunliffe 20 may. 2010 a las 10:11

Simplemente reemplace todas las comas con un espacio en blanco.

Puedes seguir esto: http: / /blog.techsaints.com/2007/06/25/javascript-how-to-remove-all-commas-from-a-number/

2
James Black 7 may. 2009 a las 04:00

Convierte una cadena de números delimitados por comas en un número de tipo (también conocido como conversión de tipo )

+"1,234".split(',').join('') // outputs 1234

Desglose :

+             - math operation which casts the type of the outcome into type Number
"1,234"       - Our string, which represents a comma delimited number
.split(',')   - split the string into an Array: ["1", "234"], between every "," character
.join('')     - joins the Array back, without any delimiter: "1234"

Y una función simple sería:

function stringToNumber(s){
  return +s.split(',').join('');
}
2
vsync 23 ago. 2015 a las 20:48

Una manera rápida y sucia es usar el método String.replace ():

var rawstring = '1,200,000';
var cleanstring = rawstring.replace(/[^\d\.\-\ ]/g, '');

Esto establecerá la cadena de limpieza en: 1200000. Suponiendo que está utilizando el formato de EE. UU., Se producirán las siguientes conversiones:

1234 --> 1234
1,234 --> 1234
-1234 --> -1234
-1,234 --> -1234
1234.5 --> 1234.5
1,234.5 --> 1234.5
-1,234.5 --> -1234.5
1xxx234 --> 1234

Si está en otras configuraciones regionales que invierten el '.' y ',', entonces tendrás que hacer ese cambio en la expresión regular.

23
johnvey 7 may. 2009 a las 04:14