Frage

Gibt es ein Zeichen in JavaScript eine einzige Zeile Code zu brechen, so dass sie als kontinuierliche gelesen wird auf einer neuen Zeile, obwohl sie?

So etwas ....

1. alert ( "Please Select file   
2. \ to delete" );
War es hilfreich?

Lösung

In Ihrem Beispiel können Sie die Zeichenfolge in zwei Stücke brechen:

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

Oder wenn es eine Zeichenfolge, wie in Ihrem Fall, können Sie eine Backslash als @Gumbo vorgeschlagen:

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

Beachten Sie, dass dieser Backslash Ansatz ist nicht unbedingt bevorzugt und möglicherweise nicht überall unterstützt ( ich hatte auf diesem harten Daten Probleme bei der Suche). Es ist nicht in der ECMA 5.1 spec .

Wenn Sie mit anderem Code (nicht in Anführungszeichen) arbeitet, Zeilenumbrüche werden ignoriert, und durchaus akzeptabel. Zum Beispiel:

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

Andere Tipps

Setzen Sie den umgekehrten Schrägstrich am Ende der Zeile:

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

Bearbeiten Ich muss beachten, dass dies nicht Teil ECMAScript Strings als Linie Zeichen endet sind haupt nicht erlaubt:

  

A ' LineTerminator ' Zeichen erscheinen nicht in einem String-Literal, wenn auch durch einen Schrägstrich \ voraus. Die richtige Art und Weise eine Linie Abschlusszeichen zu sein, einen Teil des String-Wert eines Zeichenfolgenliterals zu verursachen ist eine Escape-Sequenz wie \n oder \u000A zu verwenden.

Also mit String-Verkettung ist die bessere Wahl.


Aktualisieren 2015.01.05

ECMAScript 6 führt Template Strings :

  

Template Strings sind Stringliterale eingebettete Ausdrücke erlaubt.   Sie können mehrzeiligen Strings und String-Interpolation Eigenschaften mit   sie.

Beispiel:

alert(`Please Select file   
to delete`);

alarmiert

Please Select file   
to delete

die Zeichenfolge in zwei Stücke Break up

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

Gut zu beachten. Versuche:

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

Und das funktionierte. Doch am Unfall !, gibt es ein Leerzeichen nach dem letzten Backslash (alle andere Schrägstriche am Ende der Leitung waren). Und dies verursachte einen Fehler in der JavaScript! Das Entfernen dieser Raum der Fehler behoben, though.

Dies ist in ADT für Android mit Cordova.

Sie können einfach verwenden

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

Das sollte funktionieren

Sie können ein langes String-Konstante in logische Stücke brechen und sie in eine Array zuweisen. Dann machen Sie eine join mit einem leeren String als Trennzeichen.

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:

  
      
  1. Dies ist das erste Teil .... 2. Dies ist zweiter Teil ..... 3. Beenden hier.
  2.   

Es gibt eine leichte Leistungs so getroffen, aber Sie gewinnen in Code Lesbarkeit und Wartbarkeit.

Ich habe versucht, eine Reihe der oben genannten Vorschläge, sondern bekam ein unzulässiges Zeichen in Chrome Code Warn Inspektoren. Die folgenden für mich gearbeitet (nur in Chrome getestet though!)

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

kommt aus wie ...

stuff on line 1
stuff on line 2

Beachten Sie den doppelten Backslash !! ... das scheint wichtig zu sein!

Keine Notwendigkeit einer manuellen Pause in Code. Fügen Sie einfach \ n, wo Sie wollen brechen.

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

Es wird der Alarm wie

Please select file 
to delete.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top