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 :

RegExp pour simplifier des URLs [RegExp]


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 89
    Par d�faut RegExp pour simplifier des URLs
    Bonjour � tous,

    J'essaie de cr�er une Regex qui puisse simplifier des urls de cette facon :

    Avant :
    http://test.com/
    https://test.com/test/mytest
    ftp://test.com/test/mytest.html
    abc://test.com/test/

    Apr�s :
    test.com
    test.com/test/mytest
    test.com/test/mytest.html
    test.com/test/

    J'y suis presque, j'ai juste une slash qui saute sur le dernier exemple ("test.com/test" au lieu de "test.com/test/") :S

    Pouvez-vous m'aider ?

    Merci !

    Ma Regex actuelle :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function shurl( url ) 
    {
    	var reg = /(.+(www\.|\/\/))([a-z0-9_\-\/]+\..+)(\/|\b)/gi;
    	var ar = reg.exec(url);
    	return ar[3];
    }
     
    document.write(shurl("http://www.test.com/")+"<br />");
    document.write(shurl("http://www.test.com/test/mytest")+"<br />");
    document.write(shurl("http://www.test.com/test/mytest.html")+"<br />");
    document.write(shurl("http://www.test.com/test/")+"<br />");

  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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    oul� tu te complique l'existence l� ...
    en une ligne c'est torch� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    function shurl( inurl ) 
    {
     return  inurl.replace(/.*\/{2}/,'');
    }

    exemple d'utilisation:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    arrayurl=["http://test.com/","https://test.com/test/mytest","ftp://test.com/test/mytest.html","abc://test.com/test/"]
    var i=-1
    while (arrayurl[++i]){
     alert( shurl(arrayurl[i]))
     }
    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 confirm�
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 89
    Par d�faut
    MERCI BEAUCOUP !

    OK alors je vais essayer de comprendre le mod�le que tu as fait pour ne pas reproduire le m�me erreur la prochaine fois ^^ D�j� utiliser replace Je d�bute en JS mais je suis motiv� pour apprendre

    Par contre je sais pas si ce d�tail compl�xifie beaucoup la chose mais j'aimerais que les URLs comme "http://www.test.com/" perdent le slash � la fin et deviennent "test.com" au lieu de "test.com/", je poste si je trouve une solution SIMPLE ^^

  4. #4
    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 659
    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 659
    Billets dans le blog
    1
    Par d�faut
    en une seule reg �a peut se compliquer, mais tu peux les enchainer:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    return  inurl.replace(/^.*\/{2}/,'').replace(/\/$/,'')
    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 !

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 89
    Par d�faut
    Merci SpaceFrog Par contre je perds mes slashs � la fin des urls du type : "http://www.test.com/rubrique/", je souhaiterai perdre les slashs pour les URLs qui ne comportent que le nom de domaine comme "http://www.test.com/" => "test.com"

    Je cherche une solution de mon c�t� mais d�butant sur les Regex en JS j'ai quelques difficult�s.

    Je poste la solution et je clos le sujet d�s que je l'ai

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    F�vrier 2009
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2009
    Messages : 89
    Par d�faut
    Je poste la fonction que j'ai cr�� elle convient normalement � n'importe quel format d'URL. Il y a surement une mani�re plus performante de faire ca mais bon la fonction marche.

    Fonction pour simplifier des urls :

    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 shurl( inurl )
    {
     
    	// Regex pour tester si l url est seulement un nom de domaine
    	var reg = new RegExp("^[a-z0-9\._-]+\/$","g");
     
    	var inurl= inurl.replace(/(.*:\/\/)(www\.|www2\.|www3\.|\b)(.*)/,'$3');
     
    	// Si l url retourne est seulement un nom de domaine on enleve le slash
    	if(reg.test(inurl) == true) {
    		inurl = inurl.replace(/\//,'');
    	}
     
    	return inurl;
     
    }
    Avant :
    http://www.test.com/
    https://test.com/test/mytest
    ftp://www3.test.com/test/mytest.html
    abc://www.test.com/test/
    http://sousdomaine.test.com/

    Apr�s :
    test.com
    test.com/test/mytest
    test.com/test/mytest.html
    test.com/test/
    sousdomaine.test.com

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [PHP 5.3] TEXTAREA et nl2br pour cr�er des URL
    Par mathurin61 dans le forum Langage
    R�ponses: 4
    Dernier message: 03/08/2012, 22h01
  2. R�ponses: 7
    Dernier message: 02/11/2010, 13h36
  3. [RegEx] Regexp pour matcher des num�ros de t�l�phones
    Par m0ul3sh0t dans le forum Langage
    R�ponses: 5
    Dernier message: 12/01/2010, 15h21
  4. regexp pour supprimer des dossiers
    Par Oega dans le forum VBScript
    R�ponses: 1
    Dernier message: 16/07/2008, 08h38
  5. [RegEx] Expression r�guli�re pour r�duire des URL
    Par kivan666 dans le forum Langage
    R�ponses: 6
    Dernier message: 11/06/2006, 21h39

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