¿Cómo se filtran solo los números de una cadena?JQuery Número de filtro de una cadena
Example Pseudo Code:
number = $("thumb32").filternumbers()
number = 32
¿Cómo se filtran solo los números de una cadena?JQuery Número de filtro de una cadena
Example Pseudo Code:
number = $("thumb32").filternumbers()
number = 32
No es necesario jQuery para esto - simplemente vieja JavaScript regex replacement
var number = yourstring.replace(/[^0-9]/g, '')
Esto se librará de cualquier cosa que no es [0-9]
Editar: Aquí está una pequeña función para extraer todos los números (como números reales) de una cadena de entrada. No es una expresión exhaustiva, pero será un buen comienzo para cualquiera que lo necesite.
function getNumbers(inputString){
var regex=/\d+\.\d+|\.\d+|\d+/g,
results = [],
n;
while(n = regex.exec(inputString)) {
results.push(parseFloat(n[0]));
}
return results;
}
var data = "123.45,34 and 57. Maybe add a 45.824 with 0.32 and .56"
console.log(getNumbers(data));
// [123.45, 34, 57, 45.824, 0.32, 0.56];
¿Por qué la expresión regular es tan difícil? Se ve tan extraño y mi cerebro simplemente parece cerrarse inmediatamente porque se abruma con mucha puntuación ... y símbolos, si no sé su significado pero sé que significan algo ... ¿Por qué tengo que mira esto todo el tiempo? La información simplemente no se me pega en la cabeza, no importa qué ... –
^Bienvenido al club. –
Hola. Pero para números como 12.5, 20.3. Ellos regresan 125 y 203? –
En realidad, no jQuery en absoluto:
number = number.replace(/\D/g, '');
Esa expresión regular, /\D/g
, no coincide con cualquiera dígitos. Por lo tanto, la llamada a .replace()
reemplaza todos los no dígitos (todos ellos, gracias a "g") con la cadena vacía.
edición — si quieres una * número valor real, se puede utilizar parseInt()
después de eliminar la no-dígitos de la cadena:
var number = "number32"; // a string
number = number.replace(/\D/g, ''); // a string of only digits, or the empty string
number = parseInt(number, 10); // now it's a numeric value
Si la cadena original puede tener ningún dígito en absoluto , obtendrá el valor numérico NaN
sin valor de parseInt
en ese caso, que puede ser tan bueno como cualquier cosa.
¿Podría dar algunos datos de ejemplo? dkwlj-32-fjkij-ff0-33? – sunn0
Lea las preguntas frecuentes: http://stackoverflow.com/faq Las preguntas deben ser * preguntas *. Y cuanto más esfuerzo le dediques a tu pregunta, mejor será la calidad y la cantidad de respuestas que recibirás recientemente (y más respeto por el lugar que estás mostrando). –