Antworten:
In Ihrem Beispiel können Sie die Zeichenfolge in zwei Teile teilen:
alert ( "Please Select file"
+ " to delete");
Wenn es sich wie in Ihrem Fall um eine Zeichenfolge handelt, können Sie einen Backslash verwenden, wie von @Gumbo vorgeschlagen:
alert ( "Please Select file\
to delete");
Beachten Sie, dass dieser Backslash-Ansatz nicht unbedingt bevorzugt und möglicherweise nicht allgemein unterstützt wird (ich hatte Probleme, harte Daten dazu zu finden). Es ist nicht in der ECMA 5.1-Spezifikation enthalten .
Bei der Arbeit mit anderem Code (nicht in Anführungszeichen) werden Zeilenumbrüche ignoriert und sind durchaus akzeptabel. Beispielsweise:
if(SuperLongConditionWhyIsThisSoLong
&& SuperLongConditionOnAnotherLine
&& SuperLongConditionOnThirdLineSheesh)
{
// launch_missiles();
}
Setzen Sie den Backslash am Ende der Zeile:
alert("Please Select file\
to delete");
Bearbeiten Ich muss beachten, dass dies nicht Teil von ECMAScript-Zeichenfolgen ist, da Zeilenabschlusszeichen überhaupt nicht zulässig sind:
Ein ' LineTerminator' -Zeichen kann nicht in einem Zeichenfolgenliteral angezeigt werden , auch wenn ein Backslash vorangestellt ist
\
. Der richtige Weg, um zu bewirken, dass ein Zeilenabschlusszeichen Teil des Zeichenfolgenwerts eines Zeichenfolgenliteral ist, besteht darin, eine Escape-Sequenz wie\n
oder zu verwenden\u000A
.
Daher ist die Verwendung der Zeichenfolgenverkettung die bessere Wahl.
Update 2015-01-05 String-Literale in ECMAScript5 ermöglichen die erwähnte Syntax:
Ein Zeilenabschlusszeichen kann in einem Zeichenfolgenliteral nur als Teil einer LineContinuation angezeigt werden , um die leere Zeichenfolge zu erstellen. Der richtige Weg, um zu bewirken, dass ein Zeilenabschlusszeichen Teil des String-Werts eines String-Literal ist, ist die Verwendung einer Escape-Sequenz wie
\n
oder\u000A
.
\n
\u000A
Zeilenabschlusszeichen Teil des Zeichenfolgenwerts eines Zeichenfolgenliterals ist, ist eine Escape-Sequenz wie oder zu verwenden . "
\r\n
statt \n
?
ECMAScript 6 führt Vorlagenzeichenfolgen ein :
Vorlagenzeichenfolgen sind Zeichenfolgenliterale, die eingebettete Ausdrücke ermöglichen. Sie können damit mehrzeilige Zeichenfolgen und Zeichenfolgeninterpolationsfunktionen verwenden.
Beispielsweise,
alert(`Please Select file
to delete`);
wird alarmieren
Please Select file
to delete
`
Schlüssel. Da es sich um einen Modifikator handelt, wird er nicht direkt geschrieben. Das ist wahrscheinlich der Grund, warum Sie dachten, Sie sollten es zweimal drücken, aber das wird zwei davon schreiben. Drücken Sie die Leertaste, um nur eine zu schreiben.
Brechen Sie die Schnur in zwei Teile
alert ("Please select file " +
"to delete");
Interessant zu bemerken. Versucht:
alert("Some \
string \
wrapped \
across \
mutliples lines.")
Und das hat funktioniert. Bei einem Unfall! Gab es nach dem letzten Backslash ein Leerzeichen (alle anderen Backslashes befanden sich am Ende der Zeile). Und das hat einen Fehler im Javascript verursacht! Durch Entfernen dieses Leerzeichens wurde der Fehler jedoch behoben.
Dies ist in ADT für Android mit Cordova.
Some\n<4 spaces>string\n<4 spaces>wrapped\n<4 spaces>across\n<4 spaces>multiple lines.
Sie können einfach verwenden
1: alert("Please select file" +
2: " to delete");
Das sollte funktionieren
Sie können eine lange Zeichenfolgenkonstante in logische Blöcke aufteilen und sie einem Array zuweisen. Führen Sie dann eine join
mit einer leeren Zeichenfolge als Trennzeichen aus.
var stringArray = [
'1. This is first part....',
'2. This is second part.....',
'3. Finishing here.'
];
var bigLongString = stringArray.join('');
console.log(bigLongString);
Ausgabe wird sein:
- Dies ist der erste Teil .... 2. Dies ist der zweite Teil ..... 3. Hier fertig werden.
Auf diese Weise wird die Leistung leicht beeinträchtigt, aber Sie gewinnen an Lesbarkeit und Wartbarkeit des Codes.
Eine gute Lösung für VSCode-Benutzer , wenn eine in mehrere Zeilen zerlegte Zeichenfolge das Problem verursacht (ich hatte dies, als ich ein langes JWT-Token testen musste und irgendwie die Verwendung von Vorlagenliteralen nicht ausreichte).
Ich habe einige der oben genannten Vorschläge ausprobiert, aber im Chrome-Code-Inspektor eine ILLEGALE Zeichenwarnung erhalten. Folgendes hat bei mir funktioniert (allerdings nur in Chrome getestet!)
alert('stuff on line 1\\nstuff on line 2);
kommt raus wie ...
stuff on line 1
stuff on line 2
HINWEIS der doppelte Backslash !! ... das scheint wichtig zu sein!
Keine manuelle Code-Unterbrechung erforderlich. Fügen Sie einfach \ n hinzu, wo Sie brechen möchten.
alert ("Please Select file \n to delete");
Dies zeigt die Warnung wie
Please select file
to delete.