Odpowiedzi:
W twoim przykładzie możesz podzielić sznurek na dwie części:
alert ( "Please Select file"
+ " to delete");
Lub, gdy jest to ciąg znaków, tak jak w twoim przypadku, możesz użyć ukośnika odwrotnego, jak sugerował @Gumbo:
alert ( "Please Select file\
to delete");
Zauważ, że to podejście z odwrotnym ukośnikiem niekoniecznie jest preferowane i być może nie jest powszechnie obsługiwane (miałem problem ze znalezieniem twardych danych na ten temat). Nie ma go w specyfikacji ECMA 5.1 .
Podczas pracy z innym kodem (nie w cudzysłowach) podziały wierszy są ignorowane i całkowicie dopuszczalne. Na przykład:
if(SuperLongConditionWhyIsThisSoLong
&& SuperLongConditionOnAnotherLine
&& SuperLongConditionOnThirdLineSheesh)
{
// launch_missiles();
}
Umieść odwrotny ukośnik na końcu linii:
alert("Please Select file\
to delete");
Edytuj Muszę zauważyć, że nie jest to część ciągów ECMAScript, ponieważ znaki kończące linie w ogóle są niedozwolone:
Znak „ LineTerminator ” nie może występować w literale ciągu, nawet jeśli poprzedzony jest odwrotnym ukośnikiem
\. Prawidłowym sposobem spowodowania, aby znak końca linii był częścią wartości ciągu literału ciągu, jest użycie sekwencji zmiany znaczenia, takiej jak\nlub\u000A.
Zatem użycie konkatenacji łańcuchów jest lepszym wyborem.
Aktualizacja 2015-01-05 Literały łańcuchowe w ECMAScript5 pozwalają na wspomnianą składnię:
Znak końca linii nie może występować w literale ciągu, chyba że jako część LineContinuation w celu utworzenia pustej sekwencji znaków. Prawidłowym sposobem spowodowania, aby znak końca linii był częścią wartości ciągu literału ciągu, jest użycie sekwencji zmiany znaczenia, takiej jak
\nlub\u000A.
\nlub \u000A. ”
\r\nzamiast \n?
ECMAScript 6 wprowadza ciągi szablonów :
Ciągi szablonów są literałami ciągów, umożliwiającymi osadzanie wyrażeń. Możesz używać z nimi ciągów wieloliniowych i funkcji interpolacji ciągów.
Na przykład,
alert(`Please Select file
to delete`);
zaalarmuje
Please Select file
to delete
`klucz. Ponieważ jest to modyfikator, nie jest zapisywany bezpośrednio. Prawdopodobnie dlatego pomyślałeś, że powinieneś nacisnąć go dwa razy, ale to zapisze dwa z nich. Naciśnij spację, aby napisać tylko jeden.
Podziel sznurek na dwie części
alert ("Please select file " +
"to delete");
Ciekawe do odnotowania. Wypróbowany:
alert("Some \
string \
wrapped \
across \
mutliples lines.")
I to zadziałało. Jednak przypadkowo! Po ostatnim odwrotnym ukośniku pojawił się znak spacji (wszystkie pozostałe odwrotne ukośniki znajdowały się na końcu linii). A to spowodowało błąd w javascript! Usunięcie tego miejsca naprawiło błąd.
To jest w ADT na Androida za pomocą Cordova.
Some\n<4 spaces>string\n<4 spaces>wrapped\n<4 spaces>across\n<4 spaces>multiple lines.
Możesz po prostu użyć
1: alert("Please select file" +
2: " to delete");
To powinno działać
Możesz podzielić długą ciąg znaków na logiczne fragmenty i przypisać je do tablicy. Następnie wykonaj a joinz pustym ciągiem jako separatorem.
var stringArray = [
'1. This is first part....',
'2. This is second part.....',
'3. Finishing here.'
];
var bigLongString = stringArray.join('');
console.log(bigLongString);
Dane wyjściowe będą:
- To jest pierwsza część .... 2. To druga część ..... 3. Kończę tutaj.
W ten sposób osiągnięto niewielką wydajność, ale zyskujesz na czytelności kodu i łatwości konserwacji.
Dobrym rozwiązaniem dla użytkowników VSCode , jeśli problem powoduje podział łańcucha na wiele linii (stanąłem przed tym, gdy musiałem przetestować długi token JWT i jakoś użycie literałów szablonów nie załatwiło sprawy).
Wypróbowałem kilka powyższych sugestii, ale otrzymałem NIELEGALNE ostrzeżenie o znaku w inspektorze kodu Chrome. Poniższe działało dla mnie (tylko przetestowane w Chrome!)
alert('stuff on line 1\\nstuff on line 2);
wychodzi jak ...
stuff on line 1
stuff on line 2
UWAGA podwójny ukośnik !! ... wydaje się to ważne!
Nie ma potrzeby ręcznego łamania kodu. Po prostu dodaj \ n tam, gdzie chcesz się zepsuć.
alert ("Please Select file \n to delete");
To pokaże ostrzeżenie jak
Please select file
to delete.