2010-11-03 17 views

Respuesta

36

La opción más sencilla es eliminar todas las comas: parseInt(str.replace(/,/g, ''), 10)

2

usted puede hacerlo de esta manera:

var value = parseInt("15,678".replace(",", "")); 
+0

su solución va a reemplazar sólo la primera coma, no todos ellos por lo que no funcionará para números> = 1,000,000 –

+0

@ daniel.sedlacek la pregunta era "Quiero convertir la cadena" 15,678 "en un valor 15678". Mi respuesta resuelve este problema. Estoy siendo pedante aquí, por supuesto, pero técnicamente correcto;) – treeface

8

Una forma es eliminar todas las comas con:

strnum = strnum.replace(/\,/g, ''); 

y luego pase eso a parseInt:

var num = parseInt(strnum.replace(/\,/g, ''), 10); 

Pero debe tener cuidado aquí. El uso de comas como separadores de miles es algo cultural. En algunas áreas, el número 1,234,567.89 se escribiría 1.234.567,89.

+2

'parseInt()' debe proporcionarse una raíz al ser llamado, para eliminar la interpretación hexadecimal de un número. –

1

Utilizar una expresión regular para eliminar las comas antes de analizar, como este

parseInt(str.replace(/,/g,''), 10) 
//or for decimals as well: 
parseFloat(str.replace(/,/g,'')) 

You can test it here.

8

Si sólo tiene números y comas:

+str.replace(',', '') 

El + convierte la cadena str en un número si se puede. Para que esto sea lo más claro posible, envolverlo con parens:

(+str.replace(',', '')) 

lo tanto, si lo usa en un comunicado que es más separar visualmente (+ x + se ve muy similar a ++ x):

var num = (+str1.replace(',', '')) + (+str1.replace(',', '')); 

Javascript convenciones de código (Ver "ventajas y desventajas" confusas, segunda sección de la parte inferior):

http://javascript.crockford.com/code.html

+0

su solución reemplazará solo la primera coma, no todas, por lo que no funcionará para números> = 1,000,000 –

Cuestiones relacionadas