J'ai une chaîne en train d'être saisie depuis une page au format "4m 26s", comment puis-je la supprimer en quelques secondes?JavaScript minutes et secondes en secondes
Un grand merci,
J'ai une chaîne en train d'être saisie depuis une page au format "4m 26s", comment puis-je la supprimer en quelques secondes?JavaScript minutes et secondes en secondes
Un grand merci,
var str = "4m 26s";
var arr = str.split(" ");
var sec = parseInt(arr[0], 10)*60 + parseInt(arr[1], 10);
Vous n'avez pas besoin regex si vous utilisez parseInt ...
simple regex fonctionnera:
var s = '21m 06s';
var m = /(\d{1,2})m\s(\d{1,2})s/.exec(s);
var mins = parseInt(m[1], 10);
var secs = parseInt(m[2], 10);
-1 regexp est inutile – galambalazs
Ceci est un commentaire idiot; vous pourriez techniquement dire regexes sont toujours inutiles. Il résout le problème comme demandé. Je pourrais déprécier votre réponse en disant que l'utilisation de split n'est pas nécessaire. –
non, ici regexp est lente, plus difficile à lire et plus difficile à maintenir, donc complique le problème. vous devriez utiliser regexp quand vous avez une bonne raison pour cela. vous auriez pu éditer votre code mais vous vous disputez plutôt avec moi. – galambalazs
var str = "4m 26s";
console.log(str.match(/\d+m\s+(\d+)s/)[1]);//26
manière non regex:
Faites un string.split(" ")
sur votre chaîne; puis faites string.slice(0, -1)
sur les deux tableaux. Multipliez la première entrée par 60. Ajoutez-les ensemble.
Quel est le résultat que vous cherchez: '' 26s' ou 266s'? –
Vous cherchez 266, comme dans 4 * 60 + 26 –