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 :

Découper une URL.


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut Découper une URL.
    Salut,

    Je voudrai découper une URL de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/#/picbook/23/chapter/2/paragraph/4
    pour l'envoyer dans une iframe sous cette forme:

    iframe.location = 'www.monsite.com/iframe_url.php?picbook=23&chapter=2&paragraph=4' ;

    Donc je voudrai faire une fonction qui découpe l'URL dont les conditions sont:
    1/ On récupère le contenu de l'URL se trouvant après #.
    2/ On récupère toutes les chaînes de caractères de l'URL se trouvant entre /
    3/ Une sur deux sera soit une variable pour du PHP soit la valeur de cette variable.

    Comment je peux m'y prendre ? Je ne sais même comment récupérer l'URL en JavaScript, j'ai jamais fait ça...

    Merci,
    Vincent.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2006
    Messages : 105
    Par défaut
    Salut,

    je pense qu'une recherche t'aurait donnée les infos necessaires mais bon.

    Tu as window.location pour recuperer l'url, tu as unechaine.split(regexp) pour couper ta chaine (ton url dans ton cas).

    A toi de jouer.

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    Comme le dis hakurou : est ton ami !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut
    ok, merci les gars, je vais jeter un coup d'oeil, essayer de mijoter le tout et je vous tiens au courant.
    Là c'est quand même samedi soir et une certaine flème se fait sentir en moi

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut Découper une chaîne.
    Salut,

    Mon URL est comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.monsite.com/#/picbook/23/chapter/2/paragraph/4
    J'ai fait le code suivant qui permet de découper l'url pour récupérer ce qui se trouve entre les / :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       var chaine=''+location ;
       // fractionne aux caractères /
       var tab = chaine.split(/\//) ;
       // affiche tous les morceaux
       for(i=0;i<tab.length;i++)
          alert(tab[i]) ;
    Je voudrais en fait récupérer uniquement ce qui se trouve après le # dans l'URL, avec une regexp cela doit être possible, comme faire ?

    Merci,
    Vincent.

  6. #6
    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
    fais le split sur #
    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 !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut
    lol !

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 551
    Par défaut
    C'est fait et ca marche, pas de regexp, uniquement des split, je vous mets le code, ca pourra peut-être servir:

    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
    function JS_page_loaded() {
      JS_IE_FixDisBug() ;
      iframe_main.location = 'iframe_picbook.php' ;
      var url=''+location ;
      var url_tab = url.split(/\#/) ;
      var parts = url_tab[1].split(/\//) ;
      var url_parts = '' ;
      url_parts = 'iframe_url.php?' ;
      if(parts[1] == 'picbook') {
        var j = 0 ;
        for(i=1;i<parts.length;i++) {
          if(j == 0) {
            url_parts += parts[i++] + '=' + parts[i] ;
            j=1 ;
          } else {
            url_parts += '&' + parts[i++] + '=' + parts[i] ;
          }
        }
      }
      iframe_url.location =  url_parts ;
    }

  9. #9
    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
    en une seule étape de regExp c'était réalisable ...
    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 !

  10. #10
    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
    en trichant un peu sur le "une seule étape" :
    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
     
    var mylink="http://www.monsite.com/#/picbook/23/chapter/2/paragraph/4";
    var reg=/.*#(.*)/;
     
    function modif(texte){
    var tab= texte.split(/\//g);
    var ind=0
    modtexte=""
    while(tab[ind++]){
    modtexte+="&part"+ ind +"="+tab[ind-1];
    }
    return modtexte;
    }
     
    var result= mylink.replace(reg,function(s,p1,t,x){ return modif(p1);} ) 
     
    alert (result);
    Si quelqu'un trouve comment faire l'équivalent d'un join avec incrément je suis preneur
    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 !

  11. #11
    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
    oulà ...
    il semblerait que cette syntaxe soit propriétaire IE ...
    les paramètres s,p1 ne sont pas reconnus par FFX

    arf non en fait iul s'agit d'un petit souci d'interprétation de reg split dans la fonction
    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
     
    var mylink="http://www.monsite.com/#/picbook/23/chapter/2/paragraph/4";
    var reg=/.*#\/(.*)/g;
     
    function modif(texte){
     
    var tab= texte.split(/\//);
    var ind=0;
    modtexte="";
    while(tab[ind++]){
    modtexte+="&part"+ ind +"="+tab[ind-1];
    }
     
    return modtexte;
    }
     
    var result= mylink.replace(reg,function(s,p1){ return modif(p1)} ) 
    alert (result);
    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 !

  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 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
    Gracé à ERE voici ce que je cherchais à réaliser ...

    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
    var mylink="http://www.monsite.com/#/picbook/23/chapter/2/paragraph/4";
    var reg=/.*#(.*)/g;
     
    var sep=1;
    function bar(){
    return "&part"+ sep++ +"=";
    }
     
    function modif(args){
    var texte=args[1]
    var modtexte= texte.replace(/\//g,bar);
    return modtexte;
    }
     
     
    var result= mylink.replace(reg,function(){ return modif(arguments)} ) 
     
    alert (result);
    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 !

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

Discussions similaires

  1. Découper une url
    Par g_escande81 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/12/2009, 17h03
  2. [PHP 5.2] découper une url en morceaux
    Par gtraxx dans le forum Langage
    Réponses: 4
    Dernier message: 27/09/2009, 22h19
  3. [Debutant]Formater un string pour une url
    Par maxxou dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 22/03/2004, 16h17
  4. [JSP] encoder et décoder les param d'une URL ?
    Par iubito dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 22/12/2003, 11h34
  5. [web] tester la validiter d'une URL
    Par zebiloute dans le forum Web
    Réponses: 4
    Dernier message: 25/11/2002, 16h51

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