Respuestas:
En su ejemplo, puede romper la cadena en dos partes:
alert ( "Please Select file"
+ " to delete");
O, cuando se trata de una cadena, como en su caso, puede usar una barra diagonal inversa como sugirió @Gumbo:
alert ( "Please Select file\
to delete");
Tenga en cuenta que este enfoque de barra diagonal inversa no es necesariamente preferido , y posiblemente no sea universalmente compatible (tuve problemas para encontrar datos concretos sobre esto). Es no en la especificación ECMA 5.1 .
Cuando se trabaja con otro código (no entre comillas), los saltos de línea se ignoran y son perfectamente aceptables. Por ejemplo:
if(SuperLongConditionWhyIsThisSoLong
&& SuperLongConditionOnAnotherLine
&& SuperLongConditionOnThirdLineSheesh)
{
// launch_missiles();
}
Ponga la barra invertida al final de la línea:
alert("Please Select file\
to delete");
Editar Tengo que tener en cuenta que esto no es parte de las cadenas de ECMAScript ya que los caracteres de terminación de línea no están permitidos en absoluto:
Un carácter ' LineTerminator ' no puede aparecer en una cadena literal, incluso si está precedido por una barra invertida
\
. La forma correcta de hacer que un carácter terminador de línea forme parte del valor de cadena de un literal de cadena es usar una secuencia de escape como\n
o\u000A
.
Por lo tanto, usar la concatenación de cadenas es la mejor opción.
Actualizar 2015-01-05 Los literales de cadena en ECMAScript5 permiten la sintaxis mencionada:
Un carácter terminador de línea no puede aparecer en un literal de cadena, excepto como parte de una Continuación de línea para producir la secuencia de caracteres vacía. La forma correcta de hacer que un carácter terminador de línea forme parte del valor de cadena de un literal de cadena es usar una secuencia de escape como
\n
o\u000A
.
\n
\u000A
línea para producir la secuencia de caracteres vacía. La forma correcta de hacer que un carácter terminador de línea forme parte del valor de cadena de un literal de cadena es usar una secuencia de escape como o " .
\r\n
lugar de \n
?
ECMAScript 6 presenta cadenas de plantillas :
Las cadenas de plantilla son literales de cadena que permiten expresiones incrustadas. Puede utilizar cadenas de varias líneas y funciones de interpolación de cadenas con ellas.
Por ejemplo,
alert(`Please Select file
to delete`);
alertará
Please Select file
to delete
`
llave. Como es un modificador, no está escrito directamente. Probablemente por eso pensó que debería presionarlo dos veces, pero eso escribirá dos de ellos. Presione la barra espaciadora para escribir solo uno.
Romper la cuerda en dos pedazos
alert ("Please select file " +
"to delete");
Interesante tener en cuenta. Intentó:
alert("Some \
string \
wrapped \
across \
mutliples lines.")
Y esto funcionó. Sin embargo, ¡en un accidente !, había un carácter de espacio después de la barra diagonal inversa final (todas las demás barras diagonales inversas estaban al final de la línea). ¡Y esto causó un error en el javascript! Sin embargo, eliminar este espacio solucionó el error.
Esto está en ADT para Android con Cordova.
Some\n<4 spaces>string\n<4 spaces>wrapped\n<4 spaces>across\n<4 spaces>multiple lines.
Puedes usar
1: alert("Please select file" +
2: " to delete");
Eso debería funcionar
Puede dividir una cadena larga constante en fragmentos lógicos y asignarlos a una matriz. Luego haz un join
con una cadena vacía como 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á:
- Esta es la primera parte ... 2. Esta es la segunda parte ..... 3. Terminando aquí.
De esta forma, se ve un ligero rendimiento, pero se obtiene legibilidad y facilidad de mantenimiento del código.
Una buena solución aquí para los usuarios de VSCode , si una cadena que se divide en varias líneas causa el problema (me enfrenté a esto cuando tuve que probar un token JWT largo, y de alguna manera usar literales de plantilla no funcionó).
Intenté varias de las sugerencias anteriores, pero recibí una advertencia de carácter ILEGAL en el inspector de código de Chrome. Lo siguiente funcionó para mí (¡solo probado en Chrome!)
alert('stuff on line 1\\nstuff on line 2);
sale como ...
stuff on line 1
stuff on line 2
¡¡¡NOTA la doble barra invertida !! ... esto parece ser importante!
No hay necesidad de ninguna interrupción manual en el código. Simplemente agregue \ n donde quiera romper.
alert ("Please Select file \n to delete");
Esto mostrará la alerta como
Please select file
to delete.