Comment puis-je casser une chaîne à travers plus d'une ligne de code en JavaScript?

StackOverflow https://stackoverflow.com/questions/508269

  •  21-08-2019
  •  | 
  •  

Question

Y at-il un personnage JavaScript afin de briser une ligne de code afin qu'il soit lu comme continue en dépit d'être sur une nouvelle ligne?

Quelque chose comme ....

1. alert ( "Please Select file   
2. \ to delete" );
Était-ce utile?

La solution

Dans votre exemple, vous pouvez briser la chaîne en deux morceaux:

alert ( "Please Select file"
 + " to delete");

Ou, quand il est une chaîne, comme dans votre cas, vous pouvez utiliser un backslash comme @Gumbo suggéré:

alert ( "Please Select file\
 to delete");

Notez que cette approche est pas nécessairement préféré , et peut-être pas pris en charge universellement ( J'ai eu du mal à trouver des données précises sur ce sujet). Il est pas ECMA 5.1 spec .

Lorsque vous travaillez avec un autre code (pas entre guillemets), les sauts de ligne sont ignorés, et tout à fait acceptable. Par exemple:

if(SuperLongConditionWhyIsThisSoLong
  && SuperLongConditionOnAnotherLine
  && SuperLongConditionOnThirdLineSheesh)
{
    // launch_missiles();
}

Autres conseils

Mettre la barre oblique inverse à la fin de la ligne:

alert("Please Select file\
 to delete");

Modifier Je dois noter que c'est pas de noreferrer chaînes de ECMAScript comme caractères de terminaison de ligne ne sont pas autorisés à tous:

  

A ' LineTerminator ' caractère ne peut pas apparaître dans une chaîne littérale, même si elle est précédée d'une barre oblique inverse \. La manière correcte pour provoquer un caractère de fin de ligne pour faire partie de la valeur de chaîne d'une chaîne de caractères consiste à utiliser une séquence d'échappement telle que \n ou \u000A.

Donc, en utilisant la concaténation de chaîne est le meilleur choix.


Mise à jour 05/01/2015

ECMAScript 6 introduit chaînes de modèle :

  

chaînes de modèle sont littéraux de chaîne permettant des expressions intégrées.   Vous pouvez utiliser des chaînes multi-lignes et caractéristiques d'interpolation de chaîne avec   les.

Par exemple,

alert(`Please Select file   
to delete`);

alertera

Please Select file   
to delete

Cassez la chaîne en deux morceaux

alert ("Please select file " +
       "to delete");

Il est intéressant de noter. Essayé:

alert("Some \
    string \
    wrapped \
    across \
    mutliples lines.")

Et cela a fonctionné. Cependant, sur un accident !, il y avait un espace après la barre oblique inverse finale (tous les autres étaient antislashs à la fin de la ligne). Et cela a causé une erreur dans le javascript! La suppression de cet espace fixe l'erreur, cependant.

Ceci est en ADT pour Android en utilisant Cordova.

Vous pouvez simplement utiliser

1:  alert("Please select file" +
2:        " to delete");

Cela devrait fonctionner

Vous pouvez casser une longue constante de chaîne en morceaux logiques et les affecter dans un tableau. Ensuite, faites un avec une chaîne join vide comme séparateur.

var stringArray = [
  '1. This is first part....',
  '2. This is second part.....',
  '3. Finishing here.'
];

var bigLongString = stringArray.join('');
console.log(bigLongString);

Sortie sera:

  
      
  1. Ceci est la première partie .... 2. Ceci est la deuxième partie ..... 3. Finition ici.
  2.   

Il y a une petite baisse de performance de cette façon, mais vous gagnez en lisibilité et la maintenabilité du code.

J'ai essayé un certain nombre de suggestions ci-dessus, mais eu un caractère non d'avertissement dans l'inspecteur de code Chrome. Ce qui suit a fonctionné pour moi (testé uniquement dans Chrome si!)

alert('stuff on line 1\\nstuff on line 2);

sort comme ...

stuff on line 1
stuff on line 2

NOTE la double barre oblique inverse !! ... cela semble être important!

Pas besoin d'une pause manuelle dans le code. Il suffit d'ajouter \ n où vous voulez briser.

alert ("Please Select file \n to delete");

Cela montrera l'alerte comme

Please select file 
to delete.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top