Elimina todos los caracteres no numéricos de la cadena en JavaScript

Resuelto p.campbell asked hace 14 años • 12 respuestas

Considere un escenario no DOM en el que desearía eliminar todos los caracteres no numéricos de una cadena mediante JavaScript/ECMAScript. 0 - 9Se deben conservar todos los caracteres que estén dentro del rango .

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 navegación y pulsación de teclas no son adecuadas.

p.campbell avatar Dec 08 '09 01:12 p.campbell
Aceptado

.replaceUtilice el método de la cadena con una expresión regular de \D, que es una clase de caracteres abreviada que coincide con todos los caracteres que no sean dígitos:

myString = myString.replace(/\D/g,'');
csj avatar Dec 07 '2009 19:12 csj

Si necesita esto para dejar el punto para los números flotantes, use esto

var s = "-12345.50 €".replace(/[^\d.-]/g, ''); // gives "-12345.50"
max4ever avatar Feb 23 '2012 09:02 max4ever

Utilice una expresión regular, si la implementación de su script las admite. Algo como:

myString.replace(/[^0-9]/g, '');
Auraseer avatar Dec 07 '2009 19:12 Auraseer