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 :

Boucle for avec variable dans le texte


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Boucle for avec variable dans le texte
    Bonjour à tous!

    J'essaie d'intégrer la création de tableaux dans phpBB à l'aide de TinyMCE. J'ai trouvé une solution qui fonctionne pas mal (pour ceux qui sont intéressés : http://forums.phpbb-fr.com/support-u...jet183850.html).

    Mais j'ai encore un petit problème lorsque je souhaite fusionner plusieurs cellules. Les lignes de javascript suivantes fonctionnent très bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
          rep(/\[td=1\]/gi,"<td colspan=\"1\">");
          rep(/\[td=2\]/gi,"<td colspan=\"2\">");
          rep(/\[td=3\]/gi,"<td colspan=\"3\">");
          rep(/\[td=4\]/gi,"<td colspan=\"4\">");
    Par exemple, le BBcode [td=1] sera remplacé par <td colspan="1">

    Cela fonctionne bien mais c'est très lourd, surtout que je compte ajouter un second argument pour les rowspan.

    C'est pourquoi j'aimerai réduire ces 4 lignes à l'aide d'une boucle for. Mais malgré plusieurs essais, mes bbcodes [td=] ne sont jamais reconnus...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	  for (i=1; i<=4; i++){
    		rep(/\[td= + "i" + \]/gi,"<td colspan=\"i\">");
    	}
    Quelle est la bonne écriture pour que la fonctionne rep fonctionne correctement ?

    Merci d'avance!

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     for (i=1; i<=4; i++){
    reg=new RegExp("\[td=("+i+")\]","gi");
    		rep(reg,"<td colspan=\"$1\">");
    	}
    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
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup pour votre réponse, mais cela ne fonctionne pas.

    En effet, lorsque je souhaite récupérer le html, TinyMCE génére:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [< colspan"$i">able][< colspan"$i">bo< colspan"$i">y]<< colspan"$i">r>[< colspan"$i">< colspan"$i">< colspan"$i">< colspan"$i">] [/< colspan"$i">< colspan"$i">][< colspan"$i">< colspan"$i">< colspan"$i">< colspan"$i">] [/< colspan"$i">< colspan"$i">] colspan"$i">r><< colspan"$i">r>[< colspan"$i">< colspan"$i">< colspan"$i">< colspan"$i">] [/< colspan"$i">< colspan"$i">][< colspan"$i">< colspan"$i">< colspan"$i">< colspan"$i">] [/< colspan"$i">< colspan"$i">] colspan"$i">r>[/< colspan"$i">bo< colspan"$i">y][/< colspan"$i">able]
    En fait, il semblerait que ce code remplace tous les t et les d par < colspan"$i">.
    Ainsi [table] devient [< colspan"$i">able]
    [tbody] devient [< colspan"$i">bo< colspan"$i">y]
    <tr> devient << colspan"$i">r>
    et ainsi de suite.. Ce comportement est vraiment étrange!

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    un simple oubli d'échappement

    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
    19
    20
    21
    <script type="text/javascript">
    function foo(obj){
    texte=obj.value
     
    for (i=1; i<=4; i++){
    reg=new RegExp("\\[td=("+i+")\\]","gi");
    		obj.value=obj.value.replace(reg,"<td colspan=\"$1\">");
     
    	}
    	}
    </script>
    </head>
     
    <body>
     
    <textarea id="bar" value="">[td=1][td=2][td=3][td=4]</textarea>
    <input type="button" onclick="foo(document.getElementById('bar'))" value="go" />
     
    </body>
     
    </html>
    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
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Génial, ça fonctionne parfaitement!
    Etant complètement autodidacte en javascript et pas du tout informaticien, je n'aurai jamais pu y arriver sans vous!

  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 637
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    je suis autodidacte aussi ...
    comme quoi on peut y arriver tout seul
    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. Boucle for avec variable
    Par alx63 dans le forum Langage
    Réponses: 7
    Dernier message: 23/08/2013, 10h14
  2. [Batch] boucle for avec un espace dans une variable
    Par etienne72 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/06/2012, 17h01
  3. boucle For avec variable variant
    Par frogs dans le forum Langage
    Réponses: 4
    Dernier message: 19/08/2011, 11h37
  4. boucle for et variable dans un array
    Par ledisciple dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 01/05/2011, 08h07
  5. boucle for avec exception dans l iteration
    Par norachaouia dans le forum Langage
    Réponses: 2
    Dernier message: 19/07/2007, 12h45

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