Filtrer différentes parties d'une chaîne

Bonjour à tous.

J’ai différentes chaînes représentant des temps de chronomètre :

exemples:
1’00"00 pour 1 minute
0’45"00 pour 45 secondes
0’30"65 pour 30 secondes et 65 centièmes

J’aimerais les faire passer dans une fonction Javascript qui retire toutes les valeurs égales à 0 :

1’00"00 => 1’
0’45"00 => 45"
0’30"65 => 30"65

Pour l’instant j’ai codé ceci :

function retireZero(temps){
	var sTemps = temps.split(/['"]/), sL = sTemps.length;
		for(var i=0;i<sL;i++){
			if(parseInt(sTemps[i],10)===0){
				sTemps[i]='';
			}
		}
	return sTemps.join('');
}

Mais le problème forcément c’est que je perds mes unités (les guillemets) en sortie…

Une idée ?

Tu peux également utiliser une regexp plus intelligente : /^([0-9]+)’([0-9]+)"([0-9]+)$/
Et utiliser les parenthèses capturantes pour récupérer les différentes parties de ton chronomètre.
Je te laisse voir les détails javascript pour ça :slight_smile: ça fait un brin de temps que j’en ai plus fait.

Tu n’as que 3 cas à traiter, tu n’es peut être pas obligé de passer par une boucle
Tu as essayé avec 3 taChaine.replace() successifs ?