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)

  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]);
        }

  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

  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]

  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 642
    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 642
    Points : 66 668
    Points
    66 668
    Billets dans le blog
    1
    Par défaut
    split .... plus direct non ?

  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);
    }

  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]); 
    } 
    }

  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