Partage
  • Partager sur Facebook
  • Partager sur Twitter

string sur plusieurs lignes

    16 mars 2014 à 16:23:28

    Bonjour,

    J'ai un gros problème en javascript. Je voudrais écrire une chaîne de caractère sur plusieurs ligne de cette façon :

    var string = 'ma chaine de caractère
    
    sur plusieurs
    
    lignes';

    Malheureusement la syntaxe de javascript ne permet pas ce genre d'écriture.

    Y-t-il une solution pour écrire une chaîne de caractère sur plusieurs ligne sans rajouter des quotes ou double quotes à chaque fin de ligne ?

    Merci d'avance.

    -
    Edité par Fab291 16 mars 2014 à 16:23:59

    • Partager sur Facebook
    • Partager sur Twitter
      16 mars 2014 à 16:48:04

      Si tu veux que les sauts de lignes soit inclus dans le String, tu les remplace par \n, sinon, on fait generalement comme ça :

      var string = 'ma chaine de caractère'
      
      • ' sur plusieurs'
      • ' lignes';

      Sans oublier les Espaces au début des lignes.

      • Partager sur Facebook
      • Partager sur Twitter
        16 mars 2014 à 17:40:06

        Aucune autre solution ?

        Je vais avoir à faire pas mal de copier coller de paragraphe.Si j'en reste sur cette solution je vais devoir rajouter des "quotes", "+" et éventuellement des "\n" pour chacun d'eux...

        • Partager sur Facebook
        • Partager sur Twitter
          16 mars 2014 à 19:38:19

          Tu connais le raccourci clavier ctrl+h sur tous les editeurs de texte un tant soit peu évolués ?

          Ça peut servir ...

          • Partager sur Facebook
          • Partager sur Twitter
            16 mars 2014 à 21:02:48

            Je vois vraiment pas le rapport...

            Je n'ai rien à remplacer...

            • Partager sur Facebook
            • Partager sur Twitter
              16 mars 2014 à 22:52:12

              Quelle idée d'utiliser plusieurs lignes ! Question de présentation ? Pour relire le script, le soir à la veillée ?

              Sans retour à la ligne, les éventuelles limites semblent assez lointaines, cette page charge des javascripts contenant des chaînes de caractères de plus de 200 000 octets, dans le cas des départements de la région Picardie avec les données relatives à quelques 2 291 communes !

              Sans aller jusque là , tous les saints du calendrier tiennent aisément sur une seule ligne que l'on peut «spliter» pour obtenir immédiatement un tableau (et c'est à ma connaissance, l'écriture la plus concise de celui-ci).

              Maintenant, il est possible d'échapper les retours à la ligne et d'écrire :

              var chn="Exemple \
              de chaine sur \
              plusieurs lignes";
              
              alert(chn)

              Mais c'est déconseillé par le Google javascript style guide car, hormis certains inconvénients et bien qu'accepté par la plupart des moteurs de script, cela ne fait pas partie du standard ECMA script.

              Enfin, mais c'est un autre sujet, la balise <pre></pre> permet d'insérer dans le HTML un script (démuni de ses propres balises script) qui sera transmis tel quel sans interprétation. 

              -
              Edité par 007julien 17 mars 2014 à 12:15:52

              • Partager sur Facebook
              • Partager sur Twitter
                17 mars 2014 à 12:31:51

                Ah, voila une solution un peu plus intéressante !

                *Quelle idée d'utiliser plusieurs lignes ! 

                C'est bien sûr pour une question de lisibilité au sein du code, et pour limiter les modifications lors du copier coller d'un nouveau paragraphe au sein du code. 

                Peu importe que se soit déconseillé par le google js style guide : Je ne veux pas faire lire ce code à un navigateur mais à adobe after effect.

                Pourquoi poser des questions relatives au javascript ? -> Le code lu par AE est du javascript "à la sauce adobe", toutes les bases y sont (ou presque).

                Merci pour ta réponse

                -
                Edité par Fab291 17 mars 2014 à 12:32:23

                • Partager sur Facebook
                • Partager sur Twitter
                  17 mars 2014 à 12:35:19

                  var str;
                  
                  str  = '';
                  str += '';
                  // etc
                  ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 mars 2014 à 15:15:40

                    Pas concevable,

                    Ça me ferais faire trop de manip, merci quand même.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 mars 2014 à 15:40:15

                      T'as pas un raccourci sur ton IDE pour dupliquer des lignes ? ...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 mars 2014 à 15:54:14

                        Je ne veux pas "dupliquer des lignes".

                        Je veux, adapter un string (à la base sur plusieurs lignes) pour qu'il puissent être lu correctement en js.

                        ma base de travail c'est donc un string de ce genre :

                        str = 'mon paragraphe
                        sur plusieurs
                        lignes';


                        La solution de 007julien est la plus efficace pour le moment.

                        -
                        Edité par Fab291 17 mars 2014 à 16:02:52

                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 mars 2014 à 18:33:38

                          En utilisant une regExp le Rechercher/Remplacer de ton éditeur de texte.

                          Le saut de ligne se traduit par \n ou, dans Windows, par \r\n.

                          Donc rechercher \n et le remplacer par '\n+ ' ou par du rien, si tu veux tout mettre sur une seule ligne.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 mars 2014 à 19:06:26

                            Alors là tu m'apprend un truc oO

                            J'pensais pas que les regExp marchais dans les recherches au sein d'un éditeur. Effectivement, le ctrl+H va être très utile pour le coup !

                            Merci beaucoup !

                            sujet clos

                            • Partager sur Facebook
                            • Partager sur Twitter
                              18 février 2020 à 15:19:08

                              var chain = 'salut,'+
                                     'je me porte bien,'+
                                     'et vous ?';

                              -
                              Edité par Bas_D 18 février 2020 à 16:39:13

                              • Partager sur Facebook
                              • Partager sur Twitter
                                18 octobre 2022 à 18:57:41

                                Salut,

                                Je répond pour ceux qui ne connaitrait pas et qui cherche une réponse il existe les templates litterals(littéraux de gabarits en français) permettent d'écrire des textes sur plusieurs lignes et pas que à regarder si ça correspond à vos besoins

                                var chain=`Bonjour
                                
                                je suis une 
                                
                                chaine sur plusieurs lignes`

                                https://www.w3schools.com/js/js_string_templates.asp

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  28 novembre 2024 à 9:14:21

                                  Bonjour,

                                  Je viens de tomber sur ce post car je bave depuis des jours à trouver comment réaliser un truc pareil, j'ai cherché sur internet et j'ai failli avoir la tête qui va explosé.

                                  Finalement j'ai réussi à trouver comment ce truc à été fait.

                                  En fait, l'erreur est que j'utilisait l'apostrophe ou les guillemets pour déclarer ma variable et à chaque retour de ligne j'avais une erreur, j'ai fini par me poser pour analyser la variable et je me suis apperçu que ce n'était pas une apostrophe, mais plutôt un crochet obtenu à partir de Alt Gr + 7 du pavet alphabetique

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    28 novembre 2024 à 15:25:25

                                    Ce n'est pas du tout un "crochet". Les crochets sont [ et ].

                                    Il s'agit d'un "backquote" ou "backtick",  "apostrophe inversée" en français. "antiquote" en franglais.

                                    PS: quand on programme, il faut faire attention à la police que l'on utilise, pour bien distinguer l'apostrophe et l'apostrophe inversée :  ` et '.  Sinon on peut s'arracher les cheveux.

                                    -
                                    Edité par michelbillaud 28 novembre 2024 à 15:28:39

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      28 novembre 2024 à 18:15:14

                                      « Malheureusement la syntaxe de javascript ne permet pas ce genre d'écriture. »

                                      Mais si ! Du moins depuis la specfiscation ES6 (2015).

                                      Il faut pour cela utiliser ce qui s'appelle pompeusement les "littéraux de gabarits". Ceux-ci te permettront en plus d'incorporer des variables qui seront interprétées.

                                      En fait, tu remplaces les quotes par des accents graves (Alt Gr + é, deux fois, pour les obtenir). Ceci fonctionnera bien :

                                      let ch =
                                      `ligne un
                                      ligne deux`;



                                      -
                                      Edité par Domi65 28 novembre 2024 à 18:23:08

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        29 novembre 2024 à 8:36:45

                                        Domi65 a écrit:

                                        « Malheureusement la syntaxe de javascript ne permet pas ce genre d'écriture. »

                                        Mais si ! Du moins depuis la specfiscation ES6 (2015).

                                        Il faut pour cela utiliser ce qui s'appelle pompeusement les "littéraux de gabarits". Ceux-ci te permettront en plus d'incorporer des variables qui seront interprétées.

                                        En fait, tu remplaces les quotes par des accents graves (Alt Gr + é, deux fois, pour les obtenir). Ceci fonctionnera bien :

                                        let ch =
                                        `ligne un
                                        ligne deux`;



                                        -
                                        Edité par Domi65 il y a environ 14 heures

                                        les gars le poste date de 2014 xd. attention au nécropost

                                        -
                                        Edité par quenti77 29 novembre 2024 à 12:52:53

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          29 novembre 2024 à 11:14:38

                                          quenti77 a écrit:

                                          Domi65 a écrit:

                                          « Malheureusement la syntaxe de javascript ne permet pas ce genre d'écriture. »

                                          Mais si ! Du moins depuis la specfiscation ES6 (2015).

                                          les gars le poste date de 2014 xd

                                          On a bien vu. Et la réponse que tu cites est de 2022.

                                          Les "template litterals", qui apportent une solution à la question posée en 2014, sont apparus plus tard dans la norme 2015, ça vaut donc le coup d'en parler puisque ça aide maintenant à résoudre le problème, pour ceux qui  ne sont pas encore au courant.

                                          -
                                          Edité par michelbillaud 29 novembre 2024 à 11:18:44

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            29 novembre 2024 à 17:16:04

                                            @quenti77

                                            « les gars le poste date de 2014 xd »

                                            Ah, je comprends mieux pourquoi aucune des réponses ne mentionnait cette possibilité ;-)

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            string sur plusieurs lignes

                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                            • Editeur
                                            • Markdown