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 :

Concaténer au sein d'une regex [RegExp]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 58
    Par défaut Concaténer au sein d'une regex
    Bonjour à tous,

    J'aurai besoin de concaténer des variables au sein d'une regex, mais quelque chose cloche et je ne vois pas quoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var x =  /([a-z]*)\|/,
    debut =  /\{/,
    fin   =  /\}/;
     
    var pattern = new RegExp(debut+x+fin);
     
    value = value.replace(pattern,'$'+array[aleatoire]+' ');
    Quelqu'un aurait une idée?

  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
    la syntaxe new RegExp() attend du string en paramètre ...
    pas une regex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var x =  "([a-z]*)|"
    debut =  "\{"
    fin   =  "\}";
     
    var pattern = new RegExp(debut+x+fin);
    par contre si tu souhaites rester avec des regexp //

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var x =  /([a-z]*)/
    debut =  /{/
    fin   =  /}/;
     
    var pattern = new RegExp(debut.source +x.source+fin.source);
    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é
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 58
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    la syntaxe new RegExp() attend du string en paramètre ...
    pas une regex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var x =  "([a-z]*)|"
    debut =  "\{"
    fin   =  "\}";
     
    var pattern = new RegExp(debut+x+fin);
    Merci, malheureusement ça ne résout pas mon problème...

    Peut être que je l'ai mal traduit mais je veux faire ce code qui fonctionne sans RegExp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    value = value.replace(/\{([a-z]*)\|([a-z]*)\|([a-z]*)\}/,'$'+array[aleatoire]+' ');
    Mais comme on le voit le "([a-z]*)\|" se répète et j'ai besoin de le mettre dans une variable...

    Une autre idée?

    Merci encore.

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var x =  "([a-z]*)"
    debut =  "\{"
    fin   =  "\}";
     
    mid=new Array();
    for(i=0;i<3;i==){
    mid.push(x);
    mid=mid.join('|')
    var pattern = new RegExp(debut+mid+fin);
    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é
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 58
    Par défaut
    Rah quand ça ne veut pas ça ne veut pas...

    Mais même en essayant comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var pattern = new RegExp("\{([a-z]*)\|([a-z]*)\|([a-z]*)\}");
     
    value = value.replace((pattern),'$'+array[aleatoire]+' ');
    Ça ne marche pas... bizarre, non ? Ou c'est normal et j'ai loupé quelque chose ?

  6. #6
    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
    tu peux donner un exemple de ce que tu cherches a remplacer, genre avant / après ...
    parce que j'avoue que c'est flou pour moi là
    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 !

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

Discussions similaires

  1. Concaténation au sein d'une même feuille Excel
    Par stephaneparis dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/03/2009, 19h35
  2. concaténation en vba dans une formule de cellule Excel
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/12/2005, 22h58
  3. concaténer un type char à une chaine
    Par Fabs dans le forum C
    Réponses: 8
    Dernier message: 11/11/2005, 15h21
  4. [RegEx] spliter par rapport a une regex en récuperant la regex
    Par Khrysby dans le forum Langage
    Réponses: 1
    Dernier message: 10/11/2005, 15h08
  5. Concaténation et format dans une requête
    Par kinaros dans le forum Access
    Réponses: 4
    Dernier message: 10/09/2005, 20h31

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