Considere un escenario que no sea DOM donde desee eliminar todos los caracteres no numéricos de una cadena usando JavaScript / ECMAScript. Cualquier personaje que esté dentro del rango 0 - 9
debe mantenerse.
var myString = 'abc123.8<blah>';
//desired output is 1238
¿Cómo lograrías esto en JavaScript simple? Recuerde que este es un escenario que no es DOM, por lo que jQuery y otras soluciones que involucran eventos de navegador y pulsación de teclas no son adecuadas.
javascript
string
p.campbell
fuente
fuente
\D
?replace
Funciona con esta sintaxis exacta en todos los navegadores? Parece que recuerdo haber obtenido unaobject has no method 'replace'
versión anterior de IE al usar esto con texto que tomé con jQuery ... o algo así.Si necesita esto para dejar el punto para los números flotantes, use esto
fuente
"aaa 2.9px of bbb.".replace(/[^\d.-]/g, '')
→2.9.
En caso despojar a cualquier cadena que podría rodear un número ..-
caso del número (negativo) :)parseFloat("-1234.5.50 €".replace(/[^\d.-]/g, ''))
Use una expresión regular, si la implementación de su script los admite. Algo como:
fuente
Puede usar un RegExp para reemplazar todos los caracteres que no sean dígitos:
fuente
Algo en la línea de:
fuente
yourString = yourString.replace ( /[^0-9.]/g, '' );
tratar
Mostrar fragmento de código
fuente
En Angular / Ionic / VueJS, se me ocurrió un método simple de:
Uso en la vista:
fuente
Lamentablemente, ninguna de las respuestas anteriores funcionó para mí.
Estaba buscando convertir números de moneda de cadenas como
$123,232,122.11
(1232332122.11) oUSD 123,122.892
(123122.892) o cualquier moneda como₹ 98,79,112.50
(9879112.5) para darme una salida numérica que incluye el puntero decimal.Tuve que hacer mi propia expresión regular que se parece a esto:
fuente
Función corta para eliminar todos los caracteres no numéricos pero mantener el decimal (y devolver el número):
fuente
estamos en 2017 ahora también puedes usar ES2016
o
El resultado es
fuente