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 :

probleme d'algo


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut probleme d'algo
    bonjour a tous,

    j'ai une chaine de caractère:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_id_123[]=1&new_id_123[]=2&new_id_123[]=4&new_id_123[]=3
    J'aimerais en extraire les chiffres après les =

    voici mon algo:

    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
    function convertir(xhr) {
    	var po=0;
    	var pos=0;
    	var posi=0;
    	var ch='';
    	var fo='';
    	for (i=1; i<5; i++) {
    		pos=xhr.indexOf('=',po);
    		posi=xhr.indexOf('&',po);	
    		ch=xhr.substring(pos+1,posi); 
       	po=posi+1;
     
         	fo=fo+' '+ch;
    	}
     
       document.write(fo); 	
    }
    ça marche pour les 3 premiers, mais pour le 4e chiffre(dans mon exemple, le chiffre 3) ça m'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new_id_123[]=2&new_id_123[]=1&new_id_123[]=3&new_id_123[]=
    pouvez-vous m'aidez?

  2. #2
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script language="JavaScript"> 
    function menuderoulant(selection) {
    v = "new_id_123[]=1&new_id_123[]=2&new_id_123[]=4&new_id_123[]=3";
    t = v.split("=");
    r = new Array
    for (i = 1; i < t.length; i++)
    {
    	r.push(t[i].substr(0,1));
    }
    } 
    </script>
    le tableau r contient tout les nombre (1,2,4,3)
    Remoting Context Matters
    Everything in this chapter is 100 percent undocumented. Reliance on these techniques is not supported by either Microsoft, the publisher, or the author of this book. Use at you own risk! If your computer won't work afterwards, your toaster blows up or your car doesn't start, I assume no liability whatsoever: You're now about to enter the uncharted territories of .NET and you do so on your own risk. I can only provide some guidance

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    efficace, merci

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    aïe, malheureusement ça ne marche pas avec des nombres de plus de 1 chiffres

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par GTJuanpablo
    aïe, malheureusement ça ne marche pas avec des nombres de plus de 1 chiffres
    Quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    s.split(/(?:=)(\d+)(?=[&$])/);
    Mais c'est un premier jet, ça doit pas marcher du premier coup

  6. #6
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    essaye ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var valeur=new Array();
        param = "new_id_123[]=1&new_id_123[]=25&new_id_123[]=455&new_id_123[]=3"; 
        // On s&pare le paramètres....
        // first[0] est de la forme param=valeur
        first = param.split("&");
        for(i=0;i<first.length;i++){
            second = first[i].split("=");
            nom[i] = second[0];
            valeur[i] = second[1];
    	alert(valeur[i]);
        }
    Remoting Context Matters
    Everything in this chapter is 100 percent undocumented. Reliance on these techniques is not supported by either Microsoft, the publisher, or the author of this book. Use at you own risk! If your computer won't work afterwards, your toaster blows up or your car doesn't start, I assume no liability whatsoever: You're now about to enter the uncharted territories of .NET and you do so on your own risk. I can only provide some guidance

  7. #7
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par denisC
    Mais c'est un premier jet, ça doit pas marcher du premier coup
    Bon, avec quelques tests, ça va mieux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    s.match(/=(\d+)(?=$)|=(\d+)(?=&)/g)
    Le seul soucis, c'est que ça retourne le =.... je sais pas comment m'en debarasser

    Mais bon, soit tu l'enleves de la regexp, et tu auras tous les nombres suivis de & ou tu le laisses (tous les nombres entre = et &) mais il faudra l'enlever dans chacune des chaines capturées

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    merci je vais essayer de bricoler avec ce que vous m'avez donné ,

  9. #9
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par GTJuanpablo
    merci je vais essayer de bricoler avec ce que vous m'avez donné ,
    tu n'as rien a bricoler, tout le code que tu as de besoin je te l'ai donnée dans mon dernier post.

    Essayer c'est l'adopter
    Remoting Context Matters
    Everything in this chapter is 100 percent undocumented. Reliance on these techniques is not supported by either Microsoft, the publisher, or the author of this book. Use at you own risk! If your computer won't work afterwards, your toaster blows up or your car doesn't start, I assume no liability whatsoever: You're now about to enter the uncharted territories of .NET and you do so on your own risk. I can only provide some guidance

  10. #10
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par shwin
    Essayer c'est l'adopter

    Vive les expressions régulières


    Pour deux achetées, la troisième à moitié prix

    ok, je

  11. #11
    Membre actif Avatar de Seb19
    Homme Profil pro
    Concepteur SOA
    Inscrit en
    Septembre 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur SOA

    Informations forums :
    Inscription : Septembre 2005
    Messages : 217
    Points : 292
    Points
    292
    Par défaut
    Bonjour,

    aïe, malheureusement ça ne marche pas avec des nombres de plus de 1 chiffres
    Il suffit de déterminer la position du caractère "&" dans t[i] et de faire un substr de 0 à cette position. Attention, s'il ne trouve pas le "&", alors tu prends tout t[i]
    Celui qui pose une question risque cinq minutes d'avoir l'air bête.
    Celui qui ne pose pas de question restera bête toute sa vie.(proverbe chinois)

  12. #12
    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 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 638
    Points : 66 667
    Points
    66 667
    Billets dans le blog
    1
    Par défaut
    split .... plus direct non ?
    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 !

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    malheureusement je n'arrive pas a adapter ton code, voici le mien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	function convertir(xhr) {
     
    	t = xhr.split("=");
    	r = new Array
    	for (i = 1; i < t.length; i++)
    	{
      	 r.push(t[i].substr(0,2));
    	}
     	  document.write(r); 	
     
    	}

  14. #14
    Membre actif Avatar de Seb19
    Homme Profil pro
    Concepteur SOA
    Inscrit en
    Septembre 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur SOA

    Informations forums :
    Inscription : Septembre 2005
    Messages : 217
    Points : 292
    Points
    292
    Par défaut
    Essaye avec ça:
    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
     
    function convertir(xhr) {
       t = xhr.split("=");
       r = new Array
       for (i = 1; i < t.length; i++)
       {
       	var chaine = t[i];
       	index = chaine.indexOf('&');
       	if (index >= 0) {
    	      r.push(t[i].substr(0,index));
    	   } else {
    	   	r.push(t[i].substr(0));
    	   }
       }
          document.write(r);
    }
    Celui qui pose une question risque cinq minutes d'avoir l'air bête.
    Celui qui ne pose pas de question restera bête toute sa vie.(proverbe chinois)

  15. #15
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function convertir(xhr) { 
    var valeur=new Array();  
    // On s&pare le paramètres.... 
    // first[0] est de la forme param=valeur 
    first = xhr.split("&"); 
    for(i=0;i<first.length;i++){ 
            second = first[i].split("="); 
            nom[i] = second[0]; 
            valeur[i] = second[1]; 
            alert(valeur[i]); 
    } 
    }
    Remoting Context Matters
    Everything in this chapter is 100 percent undocumented. Reliance on these techniques is not supported by either Microsoft, the publisher, or the author of this book. Use at you own risk! If your computer won't work afterwards, your toaster blows up or your car doesn't start, I assume no liability whatsoever: You're now about to enter the uncharted territories of .NET and you do so on your own risk. I can only provide some guidance

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 194
    Points : 83
    Points
    83
    Par défaut
    ça marche, merci a tous

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

Discussions similaires

  1. Probleme d'algo d'un dictionnaire
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 31/05/2015, 17h06
  2. Réponses: 2
    Dernier message: 19/03/2007, 10h31
  3. Probleme d'algo
    Par zorglub67 dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 05/04/2006, 11h28
  4. [algo]probleme de variables hotes ds un insert
    Par omega dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/03/2004, 09h03

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