Vous pouvez utiliser un regex pour extraire les numéros dans la chaîne via String#match
, et convertir chacun d'eux en un nombre via 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 les chiffres se produisent vraiment seulement aux extrémités des chaînes ou vous voulez juste convertir le premier jeu de chiffres que vous trouvez, vous pouvez simplifier un peu:
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 vous voulez ignorer chiffres qui ne sont pas à la fin, ajouter $
à la fin de la regex:
matches = str.match(/\d+$/);
Live example
Cela ne va pas fonctionner. 'number' est un tableau. – jwueller
cela ne fonctionne pas pour les chaînes comme "abcs12s3", "123abc" –
@Chinmayee: "il est une règle que int est toujours à l'arrière de la chaîne" – darioo