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 variables


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut RegExp et variables
    Bonjour

    J'ai un p'tit soucis concernant la définition d'une RegExp :
    Je souhaite transformer en RegExp une variable (smiley) qui peut contenir divers caractères spéciaux comme ":;()#"...
    Quelle doit-être la syntaxe de ma définition de RegExp pour qu'il interprète la variable comme une chaine de caractères simple ?

    J'ai essayé diverses syntaxes en commençant par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pattern = new RegExp(smileys[0],"g")
    , mais sans succès...
    Le navigateur me retourne sans cesse une erreur de définition de la RegExp. Quelqu'un aurait-il la solution svp ?

    Merci d'avance.

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Euh, plutot que de chercher à faire ça, qui est a mon avis quasi impossible (une chaine n'est en général pas une expression regulière), tu peux nous dire ce que tu cherches à faire avec cette commande?

  3. #3
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut
    Merci pour ta réponse
    En fait, je cherche à remplacer des codes de smileys en javascript, un peu comme sur ce forum (mais sans faire appel au serveur). Mes smileys sont de la forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    smiley[i]="#code du smiley#".
    Je me suis aperçu que la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    message = message.replace(smileys,"<img src='smiley"+i+".gif'>");
    n'effectuait que le remplacement de la première occurence du smiley dans la chaine.
    Je ne suis pas très fort en javascript, mais mes recherches m'ont conduit à penser qu'en utilisant les RegExp, je pourrais peut-être effectuer le remplacement de la totalité des occurences du smiley dans la chaîne...

    Mais je me trompe peut-être, car aucune des syntaxes de définition de RegExp avec la variable "smiley" (qui peut contenir des caractères spéciaux comme ";/:$()" etc...) ne semble fonctionner .

    Auriez-vous une idée ?
    Merci !

  4. #4
    Membre régulier Avatar de nicolb
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 103
    Points
    103
    Par défaut
    Pour ceux que ça peut intéresser, voilà la solution que j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    smile = smileys.replace(/([\)\(])/g,"[$1]");
    pattern = new RegExp(smile,"g");
    message = message.replace(pattern," <img src='image.gif'> ");
    En fait j'encadre les symboles qui me posent problème de [] (ici, les "()"), et je peux ainsi définir ma RegExp à l'aide de la variable obtenue.

    Si vous avez des solutions plus courtes...

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

Discussions similaires

  1. [RegExp] Variable retournée undefined
    Par yciabaud dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2008, 12h38
  2. sed et regexp avec variables
    Par vpovpo dans le forum Shell et commandes GNU
    Réponses: 0
    Dernier message: 29/12/2007, 21h52
  3. [RegEx] Variables internes en Regexp?
    Par sachav dans le forum Langage
    Réponses: 1
    Dernier message: 26/12/2007, 11h30
  4. [RegEx] Variable dynamique dans une Regexp
    Par therebirthed dans le forum Langage
    Réponses: 1
    Dernier message: 24/12/2007, 00h33
  5. Grep, Regexp et variables
    Par 84mickael dans le forum Linux
    Réponses: 6
    Dernier message: 25/07/2007, 18h39

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