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 split sur une url


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut fonction split sur une url
    Bonjour,

    Bon ce n'est sûrement pas grand chose, mais je n'arrive pas à l'utiliser sur une url

    J'ai cherché sur internet et j'étais tombé sur ceci :

    Méthode : String.split()
    Retourne un tableau de chaînes découpées par un séparateur
    Compatible :

    Syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array chaine.split(RegExp motif)
    Description
    Retourne un tableau de sous-chaînes de caractères en utilisant comme séparateur le motif de l'expression régulière.
    Voir aussi les méthodes de chaînes de caractères utilisant les expressions régulières match() et replace()

    Exemple Découpage de chaîne
    Code source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <SCRIPT language=javascript>
    var chaine="Jean-Paul, Arthur ; Léon, Marcel ; Paul";
    var reg=new RegExp("[ ,;]+", "g");
    document.write("Chaîne d'origine : " + chaine + "<BR>");
    var tableau=chaine.split(reg);
    for (var i=0; i<tableau.length; i++) {
     document.write("tableau[" + i + "] = " + tableau[i] + "<BR>");
    }
    </SCRIPT>

    Résultat
    Chaîne d'origine : Jean-Paul, Arthur ; Léon, Marcel ; Paul
    tableau[0] = Jean-Paul
    tableau[1] = Arthur
    tableau[2] = Léon
    tableau[3] = Marcel
    tableau[4] = Paul


    Explication
    Ce script extrait de la variable chaine tous les prénoms séparés par des espaces, des , ou des ;, grâce au motif [ ,;]+ qui indique la présence d'au moins un espace, une virgule ou un point-virgule.
    J'ai donc essayé d'adapter dans la regexp (ce que j'avais déjà fait sur des champs de formulaire et ca marchait) mais la rien.

    C'est pourtant simple ... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var url = document.location.split("?")[0]; // on récupère l'url courante sans les paramètres get
    var page = url.split("/").reverse()[0]; // on récupère la page courante en sectionnant l'url par des / et en inversant l'ordre pour récupérer la page qui est du coup en premier dans le tableau de l'url découpée
    j'ai fais la même chose avec la valeur d'un champ de formulaire (un champ de type file plus précisément, pour regarder l'extension du fichier) dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (document.formulaire.champ.value.split(".").reverse()[0] = 'ica') // on coupe le nom du fichier par le point et on renverse le tableau pour avoir l'extension en premier
    Le 1er code ne marche pas alors que le deuxième si.
    L'erreur que j'ai au 1er est :
    document.location.split is not a function
    Pouvez vous m'aider ?

    C'est probablement un truc tout bête mais je ne trouve pas quoi ...

    Merci d'avance

  2. #2
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Pourquoi aller chercher ailleurs un truc qui marche pas alors qu'on peut trouver ici un truc qui marche

    http://javascript.developpez.com/faq...vig#RecupParam
    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 !

  3. #3
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var url = location.hostname;
    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

  4. #4
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut
    Ce ne sont pas les paramètres que je souhaite récupérer mais la page sur laquelle on se trouve (je m'embête un peu en faisant comme sa, je pourrais tester l'url complète, mais je trouvais ça mieux ... )

  5. #5
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var url = location.hostname;
    Ceci renvoie le nom du serveur, c'est le nom de la page que je cherchais à isoler
    Mais merci quand même

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    split sur \ et recupère le dernier element ...
    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 actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut
    Ben oui c'est ce que j'essaye de faire mais il me met une erreur javascript
    document.location.split is not a function
    ...

  8. #8
    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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    c'est pour cela que je te donnais le lien vers la FAQ

    location n'est pas une propriété de document masi de window ...

    donc
    ou
    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 !

  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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var url = location.pathname.split("/");
    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 actif
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Points : 234
    Points
    234
    Par défaut
    Ah d'accord, en effet.

    Par contre j'ai toujours la même erreur après modif
    self.location.split is not a function
    pour le code suivant (qui doit récupérer l'url sans les paramètres, ce qui est censé permettre ensuite le découpage avec le / ...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var url = self.location.split("?")[0];
    EDIT : Ton code marche Bovino (je n'avais pas vu ton message quand j'ai posté le mien, on a du poster en même temps)

    EDIT 2 : ton code marche aussi SpaceFrogger mais celui de Bovino ne nécessite pas de supprimer les paramètres de l'url ^^

    Merci à tous les deux pour m'avoir aidé

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(self.location.href.split('/')[self.location.href.split('/').length-1])
    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. [ImageMagick] getimagesize sur une URL ?
    Par Death83 dans le forum Bibliothèques et frameworks
    Réponses: 12
    Dernier message: 23/12/2005, 14h24
  2. Réponses: 3
    Dernier message: 22/12/2005, 11h20
  3. Lancement d'un navigateur internet sur une URL SIMPLEMENT
    Par Jean-mich dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 10/12/2005, 23h46
  4. [debutant]fonction "split" avec une chaine comme m
    Par EpOnYmE187 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/11/2005, 22h46
  5. [firefox] plantage sur une url
    Par ggnore dans le forum Firefox
    Réponses: 2
    Dernier message: 12/05/2005, 22h06

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