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 :

Est-ce possible avec les expressions régulières ? [RegExp]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 159
    Par défaut Est-ce possible avec les expressions régulières ?
    Bonjour,

    Je dispose d'une chaine de caractère de cette forme à traiter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "scale(0.378947 0.378947) translate(-1194 2086) rotate(90)"
    Je cherche, par une expression régulière, à récupérer le contenu des parenthèses en fonction du mot devant.

    Par exemple, pour récupérer le contenu de scale, je dispose de l'expression suivante (pas forcément la bonne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reScaleAttributes = /scale\((.*)\)/;
    Je souhaiterais donc, utiliser la méthode test() de reScaleAttributes sur ma chaine, et ne sortir que la partie entre parenthèse.

    Je crois qu'on peut accèder aux expressions parenthèsée par $1, mais je n'arrive pas à y accèder après l'appel à la fonction test().

    En gros, je voudrais faire un truc du genre, mais ça en marche pas pour le moment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var reScaleAttributes = /scale\((.*)\)/;
    if(reScaleAttributes.test(transformAttributes))
    	alert(reScaleAttributes);

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    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 684
    Par défaut
    utilise search, de préférence;

  3. #3
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    un truc comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <script type='text/javascript'>
    var chaine="scale(0.378947 0.378947) translate(-1194 2086) rotate(90)"
    reg=/(\w+)\(([0-9. -]+)\)/gi;
    var res={}
    var match;
    while (match = reg.exec(chaine)) {
      res[match[1]]= match[2];
    }
     
    alert(res.scale)
    </script>
    explication:
    contrairement à php on ne peut pas matcher toutes les occurrences en une seule fois.
    Il faut faire un premier exec et là le pointeur de la regexp s'arrête sur la première occurrence trouvée ... (un classique appelé le "une fois sur deux" sur developpez ^^ pour les habitués)
    Donc si on boucle avec un while exec on va passer en revue une à une toutes les occurrences du pattern et du coup pouvoir recupérer à chaque occurrence les niveaux de parenthèses.

    php peut faire cette opération en une seule fois avec des groupes nommés et recuperer ainsi directement un array associatif
    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 !

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    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 684
    Par défaut
    ou ça, dans ton cas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert(str.match(/scale\([\d\. ]+/)[0].substring(6))

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Par exemple, pour récupérer le contenu de scale
    je pense que tu es trop minimaliste JT
    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 !

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    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 684
    Par défaut
    ben quoi? je récupère pas le contenu de scale là?

  7. #7
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Je pense qu'il faut aussi récupérer translate et rotate, javatwister. D'où l'expression de SpaceFrog.

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

Discussions similaires

  1. [C#]Probleme avec les Expressions régulières
    Par akram46 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 07/10/2006, 13h08
  2. doublons avec les expressions régulières
    Par Mister Nono dans le forum Langage
    Réponses: 8
    Dernier message: 16/09/2006, 12h14
  3. [VB.net][vs2005] Problème avec les expressions régulières
    Par zouhib dans le forum Windows Forms
    Réponses: 13
    Dernier message: 22/06/2006, 15h56
  4. Problème avec les expressions régulières
    Par Premium dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 18/06/2006, 16h41
  5. Réponses: 8
    Dernier message: 13/12/2005, 14h02

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