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 :

formater une chaine pour url


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut formater une chaine pour url
    Bonjour,
    Je cherche une fonction en javascript qui me formate proprement une chaine pour créer une url mais pas urlencode()
    En bref, l'équivalent de cette fonction php en javascript:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function normaliza ($string){
        $a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ
    ßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
        $b = 'aaaaaaaceeeeiiiidnoooooouuuuy
    bsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
        $string = utf8_decode($string);    
        $string = strtr($string, utf8_decode($a), $b);
        $string = strtolower($string);
        return utf8_encode($string);
    }
    Merci pour votre aide!
    Les idiots sont ceux qui ne posent jamais de question!

  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 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    tu veux dire épurer des accents ?
    sinon pour créer proprement une url il y a encodeuricomponent()
    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
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    oui les accents et les caractères spéciaux. En fait ce n'est pas pour encoder une url entière mais juste une partie de manière propre afin de faciliter le référencement et aussi pour faire des urls plus propres.

    Par exemple pour un titre du style:

    C'est bientôt l'été
    LA fonction me retournerait
    c-est-bientot-l-ete

    Avant je le faisais en php, mais là j'ai besoin de le faire au fur et à mesure de la saisie du champ, donc en javascript. Je pense que ce genre de fonction doit déjà exister mais je ne trouve pas grand chose et surtout j'ai quelques lacunes en javascript.
    Les idiots sont ceux qui ne posent jamais de question!

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par manuscle Voir le message
    oui les accents et les caractères spéciaux. En fait ce n'est pas pour encoder une url entière mais juste une partie de manière propre afin de faciliter le référencement et aussi pour faire des urls plus propres.

    Par exemple pour un titre du style:

    C'est bientôt l'été
    LA fonction me retournerait
    c-est-bientot-l-ete

    Avant je le faisais en php, mais là j'ai besoin de le faire au fur et à mesure de la saisie du champ, donc en javascript. Je pense que ce genre de fonction doit déjà exister mais je ne trouve pas grand chose et surtout j'ai quelques lacunes en javascript.
    heu l'url rewriting c'est pas censé géré correctement, le faire en JS c'est quand même pas très propre.
    Enfin après tout dépend de tes besoins.

    Je t'ai fait ça rapidos :
    exemple dispo ICI : http://www.jsfiddle.net/Y8PVt/7/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Tape du texte ici<br/>
    <input type="text" id="in" onkeyup="entryKeyUp(this)" size="50"/><br/>
    Résultat :<br/>
    <input type="text" id="out" size="50"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function stringToUrl(str) {
        var a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ'.split('').concat(['Ŕ','ŕ']);
        var b = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr'.split('');
        var newString = str;
        for (var i=0; i<a.length; i++) {
            newString = newString.replace(new RegExp(a[i],'gi'),b[i]);
        }
        return newString;
    }
     
    function entryKeyUp(inp) {
       document.getElementById('out').value = stringToUrl(inp.value);   
    }

  5. #5
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Citation Envoyé par Gsnalf Voir le message
    heu l'url rewriting c'est pas censé géré correctement, le faire en JS c'est quand même pas très propre.
    Enfin après tout dépend de tes besoins.
    Je comprend pas, peux-tu étayer?

    Citation Envoyé par Gsnalf Voir le message
    Je t'ai fait ça rapidos :
    exemple dispo ICI : http://www.jsfiddle.net/Y8PVt/7/
    Double merci car 1. c'est ce que je cherchais à quelques réglages prêts, et 2. j'ai découvert le site http://www.jsfiddle.net
    Les idiots sont ceux qui ne posent jamais de question!

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par manuscle Voir le message
    Je comprend pas, peux-tu étayer?



    Double merci car 1. c'est ce que je cherchais à quelques réglages prêts, et 2. j'ai découvert le site http://www.jsfiddle.net
    ben en gros ça : http://www.webrankinfo.com/dossiers/.../url-rewriting

  7. #7
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Je fait de la reecriture d'url, c'est juste que je ne veut pas que mon titre d'article ressemble à ça dans l'url:

    C'est%20bient%C3%B4t%20l'%C3%A9t%C3%A9
    Les idiots sont ceux qui ne posent jamais de question!

  8. #8
    Inactif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 63
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par manuscle Voir le message
    Je fait de la reecriture d'url, c'est juste que je ne veut pas que mon titre d'article ressemble à ça dans l'url:

    C'est%20bient%C3%B4t%20l'%C3%A9t%C3%A9
    tu ne dois pas le faire coté client, mais coté serveur

  9. #9
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    C'est ce que je fait habituellement, mais ça génère automatiquement un alias et je dois faire en sorte que les utilisateurs puissent le modifier au besoin. Seulement ils ont un peu de mal à comprendre le principe...
    Je m'était dit alors que si à chaque frappe ça générait le titre préformaté ils verraient directement le résultat et le modifieraient au besoin.
    Les idiots sont ceux qui ne posent jamais de question!

  10. #10
    Membre éclairé Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Bon ben en fait j'ai trouvé un truc pas mal à l'aide de http://phpjs.org

    J'ai utilisé leur librairie et recopié une fonction php que j'ai trouvé sur un autre site et ça fonctionne plutot bien!

    exemple:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <script type="text/javascript" src="php.default.namespaced.min.js"></script>
        <script type="text/javascript">
     
        function stringToUrl(url){
     
            P = new PHP_JS();
     
            //url = P.utf8_decode(url);
            url = P.strtolower(P.strtr(url, 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ()[]\'"~$&%*@ç!?;,:/\^¨€{}<>|+.- ',  'aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn    --      c  ---   e       --'));
            url = P.str_replace(' ', '', url);
            url = P.str_replace('---', '-', url);
            url = P.str_replace('--', '-', url);
            url = P.trim(url,'-');
            return url;
        }
     
        function entryKeyUp(inp) {
               document.getElementById('out').value = stringToUrl(inp.value);   
        }
        </script>
    </head>
    <body>
    <h1>Test</h1>
     
    Tape du texte ici<br/>
    <input type="text" id="in" onkeyup="entryKeyUp(this)" size="50"/><br/>
    Résultat :<br/>
    <input type="text" id="out" size="50"/>
     
    </body>
    </html>
    Les idiots sont ceux qui ne posent jamais de question!

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

Discussions similaires

  1. Formater une chaine pour une instruction SQL
    Par Coicatak dans le forum C#
    Réponses: 5
    Dernier message: 20/12/2011, 23h43
  2. Réponses: 4
    Dernier message: 07/08/2008, 13h40
  3. Pb pour formater une chaine
    Par OpenMac dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2008, 09h51
  4. Recherche méthode pour formater une chaine pour JS
    Par mittim dans le forum Langage
    Réponses: 1
    Dernier message: 05/09/2006, 10h04
  5. [langage] cherche script pour formater une chaine
    Par MASSAKA dans le forum Langage
    Réponses: 7
    Dernier message: 12/11/2003, 12h18

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