Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 13/03/2010, 19h16   #1
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 587
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 587
Points : 210
Points : 210
Par défaut Extraire les 2 derniers chiffres d'un nombre longueur inconnu

Bonsoir,

J'aimerais extraire les 2 derniers chiffres d'un nombre dont on ne connais pas la longueur. (ex : 330, 1346, 12005...)

Je compte le nombre de chiffre :

Code :
1
2
3
var duree = "1346";
 
compter_Nbchiffre = (duree.length);
Puis j'extraie les 2 chiffres de droite :

Code :
DernierChiffre = duree.substr(2,2);
Mon code n'est valable que pour un nombre à 3 chiffres, comment le rendre valable pour un nombre de taille inconnu ?
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2010, 19h41   #2
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 710
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 710
Points : 4 999
Points : 4 999
bonjour,

Citation:
Mon code n'est valable que pour un nombre à 3 chiffres, comment le rendre valable pour un nombre de taille inconnu ?
comme ceci
Code :
1
2
3
4
5
6
 
var duree = "13754702";
 
DernierChiffre = duree.substring(duree.length-2, duree.length);
 
alert(DernierChiffre);
Je préfère la méthode substring() à la méthode substr(). Je sais qu'il y a une différence entre les deux mais je ne sais plus laquelle

[Edit]

je viens de trouver :
Citation:
La seule différence (avec la méthode substring) tient dans le second paramètre qui indique le nombre de caractères à extraire.
[/Edit]
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2010, 20h15   #3
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 587
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 587
Points : 210
Points : 210
Merci ca fonctionne !

Voici ma fonction terminée, pouvez-vous me donner votre avis concernant la syntaxe et si j'aurais pu faire plus court ? ( Je débute ).
Cette fonction convertie un nombre de taille aléatoire en heure et minute, sachant que les minutes représentent toujours les 2 derniers chiffres.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
function convert_nombre()
{
var duree = "13790";
 
compter_Nbchiffre = (duree.length); // Compte le nombre de chiffre dans durée
 
PremierChiffre = duree.substr(0,1); // retourne le premier chiffres de la durée en partant de la gauche
DeuxpremierChiffre = duree.substr(0,2); // retourne les 2 premiers chiffres de la durée en partant de la gauche
TroispremierChiffre = duree.substr(0,3); // retourne les 3 premiers chiffres de la durée en partant de la gauche
QuatrepremierChiffre = duree.substr(0,4); // retourne les 4 premiers chiffres de la durée en partant de la gauche
CinqpremierChiffre = duree.substr(0,5); // retourne les 5 premiers chiffres de la durée en partant de la gauche
DernierChiffre = duree.substring(duree.length-2, duree.length); //Retourne les 2 derniers chiffres de duree en partant de la droite
 
alert(DernierChiffre); // Pour test
//alert(compter_Nbchiffre+' '+PremierChiffre+' '+DeuxpremierChiffre+' '+TroispremierChiffre+' '+DernierChiffre); // Pour test
 
var minute_en_heure = Math.floor(DernierChiffre/60)+"h"+(DernierChiffre%60); //Conversion minute en heure (ex: 0h30 pour duree = 30)
var p = minute_en_heure.split('h');
var h1 = parseInt(p[0]); // Extraction des heures
var minute = p[1]; // Extraction des minutes
// Conversion des string en integer pour les sommes.
var Pchiffre = parseInt(PremierChiffre);
var Dchiffre = parseInt(DeuxpremierChiffre);
var Tchiffre = parseInt(TroispremierChiffre);
var Qchiffre = parseInt(QuatrepremierChiffre);
var Cchiffre = parseInt(CinqpremierChiffre);
 
var heure1 = minute_en_heure; // Si duree = 2 chiffres.
var heure2 = h1+Pchiffre+'h'+minute;
var heure3 = h1+Dchiffre+'h'+minute;
var heure4 = h1+Tchiffre+'h'+minute;
var heure5 = h1+Qchiffre+'h'+minute;
var heure6 = h1+Cchiffre+'h'+minute;
 
	switch (compter_Nbchiffre){
	case 2:
		alert (heure1);
					break;
	case 3:
		alert (heure2);
					break;
	case 4:
		alert (heure3);
					break;
	case 5:
		alert (heure4);
					break;
	case 6:
		alert (heure5);
					break;
	case 7:
		alert (heure6);
					break;
			default :
					break;
	}
}
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2010, 21h50   #4
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 710
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 710
Points : 4 999
Points : 4 999
si ta valeur est en minutes, tu peux utiliser l'objet date :

Code :
1
2
3
4
5
6
7
 
var dureeStr = "135"; // 135 minutes soit 2 heures et 15 minutes
var dureeInt = parseInt(dureeStr);
 
var maDate = new Date(0, 0, 0, 0, dureeInt, 0); 
 
alert(maDate.getHours()+"h "+maDate.getMinutes()+"min "+maDate.getSeconds()+"s")
pour dureeStr="135" (minutes), tu as 2 heures et 15 minutes
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2010, 10h48   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 075
Points : 43 303
Points : 43 303
Code :
1
2
var duree = "13754702";
alert(duree.match(/\d{2}$/))
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2010, 10h58   #6
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 710
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 710
Points : 4 999
Points : 4 999
Citation:
Envoyé par SpaceFrog Voir le message
Code :
1
2
var duree = "13754702";
alert(duree.match(/\d{2}$/))
et comment tu convertis les heures en minutes ?

Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2010, 13h08   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 29 075
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 29 075
Points : 43 303
Points : 43 303
Citation:
J'aimerais extraire les 2 derniers chiffres d'un nombre dont on ne connais pas la longueur. (ex : 330, 1346, 12005...)
c'était pas la question de départ ...
Si il s'agit d'une conversion heur minutes secondes il faut en effet utiliser les fonction get sur date ou time ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2010, 14h15   #8
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 710
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 710
Points : 4 999
Points : 4 999
Citation:
Envoyé par SpaceFrog Voir le message
c'était pas la question de départ ...
Si il s'agit d'une conversion heur minutes secondes il faut en effet utiliser les fonction get sur date ou time ...
oui en effet tu as raison
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 07h51.


 
 
 
 
Partenaires

Hébergement Web