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 :

Quelques questions sur une regex


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut Quelques questions sur une regex
    Bonjour tout le monde,

    J'ai lu attentivement le tuto regex de Yogui mais j'ai quand même encore des questions sur un regex javascript que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = new RegExp("^(ABS|R|J|D|[0-9]|(1[0-9])|20)$");
    je me demandais pourquoi mettre des ( ) supplémentaires ici :

    (1[0-9])
    Je me demande aussi à quoi sert le $ ici (je sais que c'est recherché dans la fin de la ligne mais j'ai un ^ qui indique de rechercher en début de ligne o_O ) :

    Je me demandais aussi si les guillemets de début et de fin étaient bien les séparateurs ?

    Dernière chose, sauriez-vous me dire si ce que j'indique ici est correcte svp ?

    - Le guillemet (") est le caractère séparateur, j'aurais pu utiliser @ ou # ou autre chose…
    - Le singe ^ indique (comme en PHP) que les caractères recherchés doivent être en début de chaine
    - La barre verticale (|) se comporte en tant qu'opérateur OU
    - [0-9] indique une liste de caractère autorisés, ici de 0 à 9, le signe – indique une intervalle (le fait de mettre l'accent circonflexe (^) à l'ouverture d'un crochet indique l'interdiction, je ne tiendrai donc pas compte de abc si j'ai ceci [^abc])
    Merci d'avance.

    beegees

  2. #2
    Membre Expert Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Par défaut
    Salut,

    Alors pour ta toute première question, je ne sais pas à quoi servent les parenthèses dans ce cas précis.

    Le $, comme tu l'as dit, indique la fin de ligne. Donc logiquement si on indique le début et la fin de ligne, ça veut dire qu'on veut que toute la ligne corresponde à l'expression régulière.

    Concernant les guillemets, je ne comprends pas la question. Il y a deux façons de déclarer une expression régulière : avec un constructeur ou un litéral :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var re = new RegExp("\\w+");
    var re = /\w+/;
    Pour la liste de questions :
    1) non, juste les guillemets en javascript.
    2) oui, pour ^.
    3) oui pour |.
    4) oui, pour l'ensemble de caractères.

    Sinon deux références supplémentaires :
    https://developer.mozilla.org/En/Cor...Objects/RegExp
    http://jacques-guizol.developpez.com...Exp.php#VIII.1

  3. #3
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par beegees Voir le message
    Je me demande aussi à quoi sert le $ ici (je sais que c'est recherché dans la fin de la ligne mais j'ai un ^ qui indique de rechercher en début de ligne o_O )
    >>> La présence de ces 2 caractères n'est pas contradictoire : cela veut seulement dire que la regexp décrit l'ensemble de la chaine a traiter ; si une chaine est testée avec cette regexp et qu'elle contient une partie conforme à la regexp, ça ne suffira pas : elle doit dans son entier vérifier la regexp ^^

    Citation Envoyé par beegees Voir le message
    Je me demandais aussi si les guillemets de début et de fin étaient bien les séparateurs ?
    >>> Je ne sais pas exactement ce que tu entends par séparateur, mais disons que le constructeur de la classe Regexp attend ici une chaine, donc l'ensemble du texte décrivant ta regexp doit effectivement être mis entre double quotes, sinon il va essayer de la découper pour l'interpréter comme du code javascript, ce que nous ne voulons pas ^^

    Citation Envoyé par beegees Voir le message
    je me demandais pourquoi mettre des ( ) supplémentaires ici :
    >>> A priori à rien mais : ce groupe de caractères est peut-être mis en place pour une fonction de remplacement qui a été supprimée ou qui n'a pas encore été implémentée...

  4. #4
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Salut à vous deux,

    Merci pour vos réponses plus que satisfaisantes.

    Je vais jeter un coup d'eoil sur vos réponses et adapter mon mémoire par rapport à celles-ci.

    Encore un grand merci pour l'aide.

    beegees

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 21/01/2010, 09h38
  2. Question sur les Regex. interdire une chaine
    Par cysboy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/05/2007, 13h49
  3. Questions sur une Regex
    Par mpereg dans le forum Général Python
    Réponses: 7
    Dernier message: 09/03/2007, 19h50
  4. Question sur les regex, besoin d'une lumière
    Par Cladjidane dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/03/2007, 12h28
  5. Réponses: 9
    Dernier message: 27/12/2006, 13h26

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