¿Cómo puedo romper una cadena a través de más de una línea de código en JavaScript?

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

  •  21-08-2019
  •  | 
  •  

Pregunta

¿Hay un personaje en JavaScript para romper una línea de código para que se lee como continua a pesar de estar en una nueva línea?

Algo así como ....

1. alert ( "Please Select file   
2. \ to delete" );
¿Fue útil?

Solución

En el ejemplo, se puede romper la cadena en dos partes:

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

O, cuando es una cadena, como en su caso, se puede utilizar un barra invertida como se sugiere @Gumbo:

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

Tenga en cuenta que este enfoque barra invertida es no necesariamente preferido , y posiblemente no compatible universalmente ( tuve problemas para encontrar datos concretos sobre esto). Es no en el ECMA 5.1 spec .

Cuando se trabaja con otro tipo de código (no entre comillas), saltos de línea se ignoran, y perfectamente aceptable. Por ejemplo:

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

Otros consejos

Ponga la barra invertida al final de la línea:

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

Editar Tengo que señalar que este es no de cadenas de ECMAScript noreferrer como línea de caracteres de terminación no se les permite en absoluto:

  

A ' LineTerminator ' personaje puede no aparecer en una cadena literal, aunque precedido por una barra invertida \. La forma correcta para causar un carácter terminador de línea para formar parte del valor de cadena de una cadena literal es utilizar una secuencia de escape tales como \n o \u000A.

Así que el uso de la concatenación de cadenas es la mejor opción.


Actualización de 05/01/2015 los literales de cadena en ECMAScript5 permiten la sintaxis mencionada:

  

Un carácter terminador de línea no puede aparecer en una cadena literal, excepto como parte de un LineContinuation para producir la secuencia de caracteres vacía. La forma correcta para causar un carácter terminador de línea para formar parte del valor de cadena de una cadena literal es utilizar una secuencia de escape tales como <=> o <=>.

cadenas de la plantilla :

  

cadenas de la plantilla son literales de cadena que permite expresiones incrustadas.   Se pueden utilizar cadenas multilínea y funciones de interpolación cadena con   ellos.

Por ejemplo,

alert(`Please Select file   
to delete`);

alertará

Please Select file   
to delete

Romper la cadena en dos piezas

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

Es interesante notar. Intentado:

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

Y esto funcionó. Sin embargo, el accidente !, había un carácter de espacio después de la barra invertida final (todos los demás eran barras invertidas al final de la línea). Y esto provocó un error en el código JavaScript! La eliminación de este espacio fijo el error, sin embargo.

Esto está en ADT para Android usando Córdoba.

Puede utilizar sólo

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

Eso debería funcionar

Puede romper una constante de cadena larga en trozos lógicos y asignarlos en una matriz. A continuación, realice una join con una cadena vacía como un delimitador.

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

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

La salida será:

  
      
  1. Esta es la primera parte .... 2. Esta es la segunda parte ..... 3. Acabado aquí.
  2.   

Hay un pequeño impacto de rendimiento de esta manera pero se gana en legibilidad del código y facilidad de mantenimiento.

He intentado varias de las sugerencias anteriores, pero tengo un carácter ilegal de advertencia en Chrome inspector de código. Los siguientes trabajó para mí (sólo probado en Chrome sin embargo!)

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

sale como ...

stuff on line 1
stuff on line 2

Tenga en cuenta la doble barra invertida !! ... esto parece ser importante!

No hay necesidad de ningún salto manual de código. Sólo tiene que añadir \ n en la que desea romper.

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

Esto mostrará la alerta como

Please select file 
to delete.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top