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 :

match (imbriqué) is not a function


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut match (imbriqué) is not a function
    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.

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    match renvoie un tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    d2 = "08 janv. 2009 2:29:28"
    d2 = d2.match(/[0-9]*\:[0-9]*\:[0-9]*$/);
    print(d2[0]);
    print(convertHms(d2[0]));

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    Merci beaucoup !
    J'ajoute cette ligne au début de ma fonction alors, ça résout tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	if (typeof time == 'object') {time=time[0]};
    A+
    Thibaud.

  4. #4
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    d2 = "08 janv. 2009 2:29:28"
    h = d2.match(/[0-9]*\:[0-9]*\:[0-9]*$/)[0]
    tabh=h.split(':')
    i=0
    while(tabh[i++]){tabh[i-1]=tabh[i-1].replace(/^(\d)$/,'0$1')}
    h=tabh.join(':')
    alert(h)
    je remplaçerais toutefois le * par + ...
    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 !

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 80
    Par défaut
    Merci, c'est ingénieux en effet.

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

Discussions similaires

  1. [AJAX] erreur: is not a function avec liste déroulante
    Par dr_octopus74 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/04/2007, 13h53
  2. is not a function
    Par Methode dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/01/2007, 22h25
  3. indexOf is not a function : pourquoi
    Par avogadro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/08/2006, 17h50
  4. document.getElementByTagName is not a function ?
    Par krolineeee dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/05/2006, 10h41
  5. window.document.forms[0].submit is not a function ?????
    Par michaelbob dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 04/01/2006, 16h08

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