Risposte:
Nel tuo esempio, puoi spezzare la stringa in due pezzi:
alert ( "Please Select file"
+ " to delete");
Oppure, quando è una stringa, come nel tuo caso, puoi usare una barra rovesciata come suggerito da @Gumbo:
alert ( "Please Select file\
to delete");
Si noti che questo approccio a barra rovesciata non è necessariamente preferito , e forse non è universalmente supportato (ho avuto problemi a trovare dati concreti su questo). E ' non è nel ECMA 5.1 spec .
Quando si lavora con altro codice (non tra virgolette), le interruzioni di riga vengono ignorate e perfettamente accettabili. Per esempio:
if(SuperLongConditionWhyIsThisSoLong
&& SuperLongConditionOnAnotherLine
&& SuperLongConditionOnThirdLineSheesh)
{
// launch_missiles();
}
Metti la barra rovesciata alla fine della riga:
alert("Please Select file\
to delete");
Modifica Devo notare che questo non fa parte delle stringhe ECMAScript poiché i caratteri di fine riga non sono consentiti affatto:
Un carattere " LineTerminator " non può apparire in una stringa letterale, anche se preceduto da una barra rovesciata
\
. Il modo corretto per far sì che un carattere di terminatore di riga faccia parte del valore di stringa di un valore letterale di stringa consiste nell'utilizzare una sequenza di escape come\n
o\u000A
.
Quindi usare la concatenazione di stringhe è la scelta migliore.
Aggiornamento 2015-01-05 I letterali di stringa in ECMAScript5 consentono la sintassi menzionata:
Un carattere di terminazione di riga non può apparire in un valore letterale di stringa, tranne come parte di una continuazione di riga per produrre una sequenza di caratteri vuota. Il modo corretto per far sì che un carattere di terminatore di riga faccia parte del valore String di un valore letterale di stringa consiste nell'utilizzare una sequenza di escape come
\n
o\u000A
.
\n
\u000A
riga per produrre una sequenza di caratteri vuota. Il modo corretto per far sì che un carattere di terminatore di riga faccia parte del valore String di un valore letterale di stringa è per usare una sequenza di escape come o . "
\r\n
anziché \n
?
ECMAScript 6 introduce stringhe modello :
Le stringhe modello sono letterali stringa che consentono espressioni incorporate. È possibile utilizzare stringhe multilinea e funzioni di interpolazione delle stringhe con esse.
Per esempio,
alert(`Please Select file
to delete`);
avviserà
Please Select file
to delete
`
chiave. Dal momento che è un modificatore non è scritto direttamente. Questo è probabilmente il motivo per cui hai pensato di premerlo due volte, ma questo ne scriverà due. Premi la barra spaziatrice per scriverne solo una.
Spezzare la corda in due pezzi
alert ("Please select file " +
"to delete");
Interessante da notare. Provato:
alert("Some \
string \
wrapped \
across \
mutliples lines.")
E questo ha funzionato. Tuttavia, in caso di incidente !, c'era un carattere spaziale dopo la barra rovesciata finale (tutte le altre barre rovesciate erano alla fine della linea). E questo ha causato un errore nel javascript! La rimozione di questo spazio ha risolto l'errore, tuttavia.
Questo è in ADT per Android usando Cordova.
Some\n<4 spaces>string\n<4 spaces>wrapped\n<4 spaces>across\n<4 spaces>multiple lines.
Puoi semplicemente usare
1: alert("Please select file" +
2: " to delete");
Dovrebbe funzionare
È possibile spezzare una costante di stringa lunga in blocchi logici e assegnarli in un array. Quindi esegui un join
con una stringa vuota come delimitatore.
var stringArray = [
'1. This is first part....',
'2. This is second part.....',
'3. Finishing here.'
];
var bigLongString = stringArray.join('');
console.log(bigLongString);
L'output sarà:
- Questa è la prima parte .... 2. Questa è la seconda parte ..... 3. Finendo qui.
In questo modo si ottengono lievi prestazioni ma si ottengono leggibilità e manutenibilità del codice.
Una buona soluzione qui per gli utenti di VSCode , se una stringa suddivisa in più righe causa il problema (ho affrontato questo problema quando ho dovuto testare un token JWT lungo e in qualche modo usare i letterali dei template non ha funzionato).
Ho provato alcuni dei suggerimenti sopra riportati, ma ho ricevuto un avviso di carattere ILLEGAL nella finestra di ispezione del codice Chrome. Quanto segue ha funzionato per me (testato solo su Chrome però!)
alert('stuff on line 1\\nstuff on line 2);
esce come ...
stuff on line 1
stuff on line 2
NOTA la doppia barra rovesciata !! ... questo sembra essere importante!
Non è necessario alcun codice di interruzione manuale. Aggiungi \ n dove desideri interrompere.
alert ("Please Select file \n to delete");
Questo mostrerà l'avviso come
Please select file
to delete.