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 :

Fonction substr ne fonctionne pas!


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut Fonction substr ne fonctionne pas!
    Bonjour,

    J'ai un soucis avec petit script JS qui est censé faire un substr sur un chaine de caractère.

    Voici le code de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function parseServerResponse(strResponse)
    {
     
        var nbTasks = strResponse.substr(5,2);
        var nbNotifications = strResponse.substr(23,2);
        alert(nbTasks);
        document.getElementById(TasksElement).innerHTML = nbTasks;
        document.getElementById(NotificationsElement).innerHTMl = nbNotifications;
        alert("calcul ok");
    }
    J'ai vérifié avec des alert le strResponse contient bien ma chaine de caractères. Mais les substr ne fonctionnent pas.
    Pourriez vous me dire pourquoi?

    Merci

  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,

    ton script fonctionne très bien chez moi. Que veux-tu dire par "Mais les substr ne fonctionnent pas" ? Précise le problème.

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    var nbTasks = strResponse.substr(5,5+2);
    var nbNotifications = strResponse.substr(23,23+2);

  4. #4
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut
    Je veux dire que je n'ai rien dans mes vars.

    Chaine.substr(position1, longueur)
    La méthode retourne une sous-chaîne commençant à l'index dont la position est donnée en argument et de la longueur donnée en paramètre.
    Et logiquement, j'utilise la fonction comme il faut.

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Citation Envoyé par blasme Voir le message
    Et logiquement, j'utilise la fonction comme il faut.
    non! le deuxième est l'indice de fin or 2<5

  6. #6
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut
    C'est pas plutot cette fonction qui prend la position 2?

    Chaine.substring(position1, position2) La méthode retourne la sous-chaîne (lettre ou groupe de lettres) comprise entre les positions 1 et 2 données en paramètre.
    Je ne fais que de citer ce que j'ai lu

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Et
    il t'affiche quoi ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut
    J'ai l'alert et rien dedans. du vide.
    J'ai essayer en mettant le

    ca ne fonctionne pas non plus.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ben... chez moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var strResponse = "abcdefghijklmnopqrstuvwxyz";
    var nbTasks = strResponse.substr(5,2);
        var nbNotifications = strResponse.substr(23,2);
        alert(nbTasks + ' - '+nbNotifications);
    m'affiche bien
    fg - xy
    strResponse correspond à quoi ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut
    strResponse contient : Tasks(18) Notifications(34)

    Le but étant de récuperer le 18 et le 34 sous forme de string.

  11. #11
    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
    tu t'es trompé dans tes indices :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var strResponse = "Tasks(18) Notifications(34)";
     
    var nbTasks = strResponse.substr(6,2);
    var nbNotifications = strResponse.substr(24,2);
     
    alert(nbTasks + ' - '+nbNotifications);
    et j'ai bien
    18 - 34
    Citation Envoyé par Matthieu2000
    non! le deuxième est l'indice de fin or 2<5
    ne confonds pas avec substring()

  12. #12
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut
    mais c pas possible!
    Pourquoi ca fonctionne pas chez moi grrrr
    J'ai tout un script qui fonctionne, les alerts sont bien la mais rien dans les variables.

    Je précise que je développe pour ie6 et sous vs2008 au cas ou cela aurait son importance.

  13. #13
    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
    Avec une expression régulière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var strResponse = "Tasks(18) Notifications(34)";
    var exp = /([0-9]+)/gi;
    var tabNb = strResponse.match(exp);
     
    alert(tabNb );
    match() te renvoie un tableau contenant les nombres.


    Sinon IE 6 ne te donne pas un quelconque message d'erreur ?

  14. #14
    Membre averti
    Inscrit en
    Février 2005
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 55
    Par défaut
    Avec une expression régulière, les substr fonctionnent.

    Mais pourquoi donc, cela ne fonctionne-t'il pas lorsque je reçois une variable?

  15. #15
    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 blasme Voir le message
    Avec une expression régulière, les substr fonctionnent.
    Je n'ai pas utilisé substr() mais match()...

    Citation Envoyé par blasme Voir le message
    Mais pourquoi donc, cela ne fonctionne-t'il pas lorsque je reçois une variable?
    Est-ce que IE 6 retourne une erreur quelconque ?
    As-tu testé le script sur un autre navigateur (Firefox par exemple ou IE 7) ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/09/2006, 17h46
  2. [Mail] fonction mail qui fonctionne pas
    Par digger dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2006, 22h28
  3. fonction ridicule qui fonctionne pas sous firefox
    Par Isses dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/06/2006, 12h08
  4. fonction plpgsql qui fonctionne pas...
    Par Empty_body dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/01/2006, 18h22
  5. La fonction CurrentDb() ne fonctionne pas dans une requête
    Par Sébastien Le Goyet dans le forum Access
    Réponses: 8
    Dernier message: 24/11/2005, 17h46

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