Puede utilizar un regex para extraer los números en la cadena a través de String#match
, y convertir cada uno de ellos a un número a través de parseInt
:
var str, matches, index, num;
str = "test123and456";
matches = str.match(/\d+/g);
for (index = 0; index < matches.length; ++index) {
num = parseInt(matches[index], 10);
display("Digit series #" + index + " converts to " + num);
}
Live Example
Si los números realmente se producen sólo en los extremos de las cuerdas o simplemente quieren convertir el conjunto primera de dígitos que aparecen, puede simplificar un poco:
var str, matches, num;
str = "test123";
matches = str.match(/\d+/);
if (matches) {
num = parseInt(matches[0], 10);
display("Found match, converts to: " + num);
}
else {
display("No digits found");
}
Live example
Si desea ignoran dígitos que no se encuentran al final, añadir $
hasta el final de la expresión regular:
matches = str.match(/\d+$/);
Live example
Esto no va a funcionar. 'number' es una matriz. – jwueller
esto no funciona para cadenas como "abcs12s3", "123abc" –
@Chinmayee: "es una regla que int siempre está en la parte posterior de la cadena" – darioo