IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Extraire les 2 derniers chiffres d'un nombre longueur inconnu


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var duree = "1346";
     
    compter_Nbchiffre = (duree.length);
    Puis j'extraie les 2 chiffres de droite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    Mon code n'est valable que pour un nombre à 3 chiffres, comment le rendre valable pour un nombre de taille inconnu ?
    comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    La seule différence (avec la méthode substring) tient dans le second paramètre qui indique le nombre de caractères à extraire.
    [/Edit]

  3. #3
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    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 : 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
    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;
    	}
    }

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    si ta valeur est en minutes, tu peux utiliser l'objet date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var duree = "13754702";
    alert(duree.match(/\d{2}$/))
    Ma page Developpez - Mon Blog 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

    Venez sur le Chat de Développez !

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var duree = "13754702";
    alert(duree.match(/\d{2}$/))
    et comment tu convertis les heures en minutes ?


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer les derniers chiffres d'un nombre
    Par marco858 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/07/2010, 16h57
  2. [Dev-Pascal] Inverser les deux derniers chiffres d'un nombre
    Par chalou999 dans le forum Autres IDE
    Réponses: 5
    Dernier message: 11/10/2009, 10h01
  3. extraire les deux premiers chiffres d'un nombre
    Par _debutant dans le forum Excel
    Réponses: 3
    Dernier message: 23/09/2008, 11h16
  4. Réponses: 2
    Dernier message: 18/07/2006, 11h40
  5. Récuperer les 2 derniers chiffres d'une année
    Par muquet dans le forum Débuter
    Réponses: 5
    Dernier message: 03/02/2006, 11h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo