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 :

expression régulière sur une url


Sujet :

JavaScript

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut expression régulière sur une url
    (re)Bonjour,

    désolé de poster aussi souvent sur ce sujet mais je ne trouve pas ce que je veux sur internet donc je sollicite votre aide pour m'aider

    En fait cette fois je voudrais vérifier la validité des url saisies

    ma regexp donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urlTest = /^http(s)?:\/\/[-[:alnum:]]+\.[-[:alnum:]]+\.[a-zA-Z]{2, 4}(:[0-9]+)?/;
    mais le test renvoie false à chaque fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (urlTest.test(document.addApplicationForm.url.value) == false)
    {
            alert("email invalide");
    }

    Cette fois je ne trouve rien qui m'aide.

    Merci d'avance pour votre aide

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Ce serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urlTest = /^http[s]?:\/\/[-[:alnum:]]+\.[-[:alnum:]]+\.[a-zA-Z]{2, 4}(:[0-9]+)?/;
    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

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Ce serait pas plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urlTest = /^http[s]?:\/\/[-[:alnum:]]+\.[-[:alnum:]]+\.[a-zA-Z]{2, 4}(:[0-9]+)?/;
    J'ai essayé mais ca n'a pas marché non plus (j'ai voulu modifier mais on a eu une coupure internet au même moment du coup tu as répondu avant la modification ! )

    Tu n'aurais pas une autre idée dans la poche par hasard ? (ou dans la tête, au choix)

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    A ma connaissance, javascript ne prend pas en charge ces mots-clefs dans les expressions régulières. Remplace le par son équivalent.

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Désolé, les regexp, c'est pas ma spécialité, mais j'ai trouvé ça qui semble marcher ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    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

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    j'ai donc essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urlTest = /^http[s]?:\/\/[-[a-zA-Z0-9]]+\.[-[a-zA-Z0-9]]+\.[a-zA-Z]{2, 4}(:[0-9]+)?/;
    mais rien ne change j'ai toujours false avec un test sur http://www.google.fr (qui est une url valide je pense )

  7. #7
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^http[s]?:\/\/[-[a-zA-Z0-9]]+\.[-[a-zA-Z0-9]]+\.[a-zA-Z]{2, 4}(:[0-9]+)?/
    tu peux m'expliquer ton expression régulière ? Plusieurs points me paraissent étrange . Par exemple :


    [edit]
    Bovino :
    attention cette expression régulière ne veut pas dire "http" ou "https" mais prend en compte :
    - httpttps
    - htthttps
    Tu fais un ou entre le "p" de http et le "h" de https. Il aurait fallu écrire :

    [/edit]

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Désolé, les regexp, c'est pas ma spécialité, mais j'ai trouvé ça qui semble marcher ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var regexp = /(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    Cette regexp marche un peu mieux mais si je fais un test sur http://arf ça passe quand même. Egalement je vois la présence d'@, je ne suis pas sur que ce symbole puisse etre compris dans une url valide


    En fait j'essaye depuis ce midi de construire une regexp qui accepterai les url qui commenceraient par
    http://(nomServeur.extensionDNS | @ip)(:port si besoin)

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    Citation Envoyé par Auteur Voir le message
    en fait l'expression que j'ai montré était tirée d'un site et elle m'avais semblée correspondre à mes besoins je m'en suis donc servi comme base

    Citation Envoyé par Auteur Voir le message
    pour identifier le port si besoin

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Cette regexp marche un peu mieux mais si je fais un test sur http://arf ça passe quand même. Egalement je vois la présence d'@, je ne suis pas sur que ce symbole puisse etre compris dans une url valide
    A la base, cette expression accepte les url ftp, d'où la présence du @, ceci dit, j'ai pas regardé en détail non plus...
    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

  11. #11
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    J'ai modifié la rexexp elle est maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urlTest = /(http|https):\/\/(\w+:{0,1}\w*)?(:[0-9]+)?(\/|\/([\w?=&\-\/]))?/;
    mais http:// suivi de n'importe quoi marche.

    Je ne vois vraiment pas

    Avez vous d'autres idées de votre coté ?

  12. #12
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Citation Envoyé par Sh4dow49 Voir le message
    J'ai modifié la rexexp elle est maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urlTest = /(http|https):\/\/(\w+:{0,1}\w*)?(:[0-9]+)?(\/|\/([\w?=&\-\/]))?/;
    mais http:// suivi de n'importe quoi marche.

    Je ne vois vraiment pas

    Avez vous d'autres idées de votre coté ?
    avec les nouvelles domaines http:// est suivi par n'importe quoi!

  13. #13
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    Donc en fait si je fais une simple regexp du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urlTest = /^(http|https):\/\//;
    ca suffirait ? (just vérifier qu'on commence l'url correctement)

  14. #14
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Auteur Voir le message

    [edit]
    attention cette expression régulière ne veut pas dire "http" ou "https" mais prend en compte :
    - httpttps
    - htthttps
    Tu fais un ou entre le "p" de http et le "h" de https. Il aurait fallu écrire :

    [/edit]

  15. #15
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 319
    Par défaut
    Aïe, Auteur n'est pas content, il a le poil qui s'hérissonne !

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

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Oui... peut-être parce qu'il a raison...
    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

  17. #17
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    oui je n'avais pas vu l'edit non plus il a bien fait de faire un rappel ^^

  18. #18
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    et donc pour en revenir à ma question : pensez vous qu'un test sur juste ((http)|(https)):\/\/ suffise à valider l'url ? il est vrai qu'on ne peut pas trop savori quelle tête elle aura mais on a au moins une idée (c'est tout le temps du genre http(s)://blabla.blabla(.blabla)(:port)(/bla)etcetc...)

    Seulement comme je n'arrive pas a construire la regexp qui traduit ca je pose cette question quand même.

  19. #19
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    quand on voit les différentes écritures...

    Pour développez tu as ceci par exemple :
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    http://www.developpez.com
    http://chat.developpez.com
    http://developpez.net/forums
    http://www.developpez.net/forums
    http://auteur.developpez.com (site des rédacteurs)

    sans compter les extensions :
    .com
    .net
    .gouv.fr
    .org
    etc...

    donc à moins de filtrer des noms domaines particuliers, tu peux te contenter de
    Ceci dit quand tu tapes une url le navigateur ajoute automatiquement le http ou https.

    Maintenant si je revient à ton premier post, tu réalises ce test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (urlTest.test(document.addApplicationForm.url.value) == false)
    {
            alert("email invalide");
    }
    Tu veux tester la valider d'une adresse mail ? ou l'url d'un site ?

    Je n'ai pas très bien compris le but de ton expression régulière

  20. #20
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    c'était bien pour tester une url, j'ai déjà réussi à trouver un test à peu près correct au niveau des emails (seule la structure est vérifiée, une adresse email du genre aaaa@aaa.aa marche quand même mais sa force à avoir la structure déjà ... )

    En ce qui concerne l'url il est vrai que le naviguateur ajoute automatiquement le http/https mais ici j'enregistre l'url en base pour ensuite la réutiliser dans l'appli, je voulais donc une url complète dans la base pour ne pas prendre le risque qu'il y ai des bugs à cause du fait que l'utilisateur ne mette qu'un morceau d'url ...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Expression régulière d'une URL
    Par étudiante_info dans le forum Android
    Réponses: 4
    Dernier message: 07/04/2011, 10h15
  2. [RegEx] Expression Régulière sur params url
    Par LeCaméléon dans le forum Langage
    Réponses: 4
    Dernier message: 14/11/2008, 14h40
  3. Expression Régulière fonctionne une fois sur deux
    Par KoRiGaN44 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/07/2008, 19h07
  4. Expression régulière sur une date
    Par mattyeux dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 26/09/2007, 17h08
  5. [RegEx] Expression régulière sur une date
    Par mattyeux dans le forum Langage
    Réponses: 1
    Dernier message: 21/09/2007, 11h16

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