Bonjour,
J'essaie de faire des conversions de dates. J'ai écris une fonction pour convertir une heure sous la forme 3:4:5 vers 03:04:05. Cependant, j'ai des problèmes pour imbriquer les match dans les expressions régulières.

Voici mon script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function convertHms(time) {
	// convert a h:m:s to hh:mm:ss
	var h = time.match(/^[0-9]*/);
	(h<10) ? h = '0' + h : h = h;
	var m = time.replace(/^[0-9]*\:|\:[0-9]*$/g,'');
	(m<10) ? m = '0' + m : m = m;
	var s= time.match(/[0-9]*$/);
	(s<10) ? s = '0' + s : s = s;
	time = h + ':' + m + ':' + s;
	return time;
}
d1='2:29:28';
print(d1);
print(convertHms(d1));
 
d2 = "08 janv. 2009 2:29:28"
d2 = d2.match(/[0-9]*\:[0-9]*\:[0-9]*$/);
print(d2);
print(convertHms(d2));
Dans cet exemple donné en bas de code, je devrai avoir deux fois le même résultat (02:29:28), la différence étant que d2 doit être une première fois extrait d'une chaine alors que d1 l'est déjà. Or, le second résultat me donne cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
TypeError on line 3: time.match is not a function
Merci de l'aide,
Thibaud.