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 et caractère réservé [RegExp]


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut RegExp et caractère réservé
    Salut les javascripteurs,
    J'ai passer une bonne partie de la nuit a esayer de récupérer des données dans un tableau avec une RegExp:
    Les données sont de la forme [LINK href=http://mon.exemple.d'url] et je cherche a récupérer href=http://mon.exemple.d'url] avec le ']', sachant que l'url peut etre n'importe laquelle et que les résultat doivent etre stocker dans un tableau donc il faut utiliser la méthode de RegExp .match() sur l'objet contenant les données.
    J'ai essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    regex=new RegExp('href=http?://.*]', 'gi')
    Je suppose que le caractère ']' est compris dans l'expression '.*' et donc le résultat est fausser.
    S'il vous plait aider moi j'ai essayer je ne sais combien de variante je n'y arrive pas.
    Merci pour vos réponses.

  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 644
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    [^\]]* pour matcher les caractères différents de ]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine="[LINK href=http://mon.exemple.d'url]"
    alert(chaine.match(/href=[^\]]*/))

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    comme ça j'aurais dit:


  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    damned, on peut plus s'absenter 2 minutes

  5. #5
    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 644
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Oui JT on peut se passer d'échapper le caractère ] car il est compris dans une classe (entre [ ] ) ceci étant cela ne coute rien de l'échapper et rend le code plus lisible, pour autant que l'on puisse parler le lisibilité avec les regexp

  6. #6
    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
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par SpaceFrog
    Oui JT on peut se passer d'échapper le caractère ] car il est compris dans une classe (entre [ ] )
    Bah... pas vraiment non
    Sinon, il va être considéré comme la fermeture de la classe...

  7. #7
    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 644
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Tu crois Beef ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine="[LINK href=http://mon.exemple.d'url]"
    alert(chaine.match(/href=[^]]*/))

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    il faut échapper sous Fox mais pas IE (va savoir pourquoi...);
    bref, c'était un oubli de ma part

  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 644
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Arf
    encore une fois victime de la permissivité d'IE

    Mon EDI est relié par defaut en visu a IE, comme ça je relève plus de bugs ...

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    [^\]]* pour matcher les caractères différents de ]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine="[LINK href=http://mon.exemple.d'url]"
    alert(chaine.match(/href=[^\]]*/))
    Il te manque la fermeture de crochet "]" dans ton match.

    Sinon solution alternative que je trouve un poil plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine="[LINK href=http://mon.exemple.d'url]"
    alert(chaine.match(/href.*?]/))

  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 644
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    il ne me manque rien dans mon match !!!
    par contre toi tu matche un crochet de trop !!

    si tu veux une solution plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(chaine.match(/(href.*)]/)[1])

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Points : 210
    Points
    210
    Par défaut
    Citation Envoyé par Luke spywoker Voir le message
    je cherche a récupérer href=http://mon.exemple.d'url] avec le ']'

  13. #13
    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 644
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Au temps pour moi

    Y'en a qui ont de ses besoins curieux qui dépassent ma logique ...

    du coup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(chaine.match(/href.*]/))
    suffit

    pas besoin du ?

  14. #14
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Merci pour votre aide j'ai déja avancer:
    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
     
    <!DOCTYPE html>
    <html lang='fr'>
    <head>
    <meta charset='utf-8'>
     
    <script>
    function test() {
    var reg_s=new RegExp('href=http?://[^\]]*', 'gi')
    alert(document.getElementById('test').value.match(reg_s))
    }
    </script>
    </head>
    <body>
    <textarea id='test'>[LINK href=http://test.com][/LINK][LINK href=http://dest.fr][/LINK]</textarea>
    <a href='javascript:test()'>test regex</a>
    </body>
    </html>
    me renvoie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'href=http://t,href=http://d'
    Donc il manque la fin de l'url et comme les regex ne sont vraiment pas ma tasse de thé surtout en javascript si quelqu'un pourrait avoir la gentillesse de finir le travaille afin de récupérer dans un tableau, toutes les URL complètes (j'ai essayer plusieurs quantificateur sans succès) et après les déboirs de cette nuit je n'en peut plus...
    Merci pour vos réponses.

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Points : 210
    Points
    210
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chaine="[LINK href=http://test.com][/LINK][LINK href=http://dest.fr][/LINK]"
    alert(chaine.match(/href.*?]/g))
    Il faut juste rajouter le flag global "g" à la solution que j'ai proposée au dessus si tu as plusieurs urls à matcher

  16. #16
    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 644
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    tu declares ta reg comme un string ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg_s=new RegExp('href=http?://[^\\]]*]', 'gi')
    et tu as oublié le ] final pour le recupérer si tu en as vraiement besoin ...

  17. #17
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Merci a tous et surtout SpaceFrog qui m'a donnée la solution,
    J'ai mis le motif regex pardon le motif RegExp en string car sinon le navigateur n'accepte pas ma syntaxe et d'ailleurs c'est plutot conseiller dans ce cas car celui-çi contenant un '//'. il me dit que la virgule pour mettre les flag est une erreur de syntaxe, si vous avez des choses cognitives au sujet des regex a me dire il sont la bienvenue car j'ai vraiment du mal quand il ne s'agit pas de données statiques disont formatées.
    Je n'ai pas vraiment besoin du ']' car la fonction substring par défaut va jusqu'au bout: ici a l'élément du tableau.
    Merci a tous pour votre aide dans un domaine oû je doit encore faire des progrès.

  18. #18
    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 644
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    Pour progresser sur les regexp un outil
    http://java.developpez.com/outils/regexsr/

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

Discussions similaires

  1. Javascript, regexp et caractère €
    Par senacle dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/06/2018, 17h48
  2. formulaire et caractères réservés
    Par socaw dans le forum Web
    Réponses: 6
    Dernier message: 21/04/2010, 15h42
  3. Liste de caractères réservés
    Par XavierBR dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/07/2009, 17h14
  4. RegExp des caractères alphanumériques limités
    Par witch dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 27/12/2007, 01h09
  5. [Fortran 90 -> LaTeX] Ecriture de caractères réservés
    Par yogitetradim dans le forum Fortran
    Réponses: 5
    Dernier message: 17/07/2007, 15h51

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