How do I break a string across more than one line

2019-01-01 06:58发布

问题:

Is there a character in JavaScript to break up a line of code so that it is read as continuous despite being on a new line?

Something like....

1. alert ( \"Please Select file   
2. \\ to delete\" );

回答1:

In your example, you can break the string into two pieces:

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

Or, when it\'s a string, as in your case, you can use a backslash as @Gumbo suggested:

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

Note that this backslash approach is not necessarily preferred, and possibly not universally supported (I had trouble finding hard data on this). It is not in the ECMA 5.1 spec.

When working with other code (not in quotes), line breaks are ignored, and perfectly acceptable. For example:

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


回答2:

Put the backslash at the end of the line:

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

Edit    I have to note that this is not part of ECMAScript strings as line terminating characters are not allowed at all:

A \'LineTerminator\' character cannot appear in a string literal, even if preceded by a backslash \\. The correct way to cause a line terminator character to be part of the string value of a string literal is to use an escape sequence such as \\n or \\u000A.

So using string concatenation is the better choice.


Update 2015-01-05    String literals in ECMAScript5 allow the mentioned syntax:

A line terminator character cannot appear in a string literal, except as part of a LineContinuation to produce the empty character sequence. The correct way to cause a line terminator character to be part of the String value of a string literal is to use an escape sequence such as \\n or \\u000A.



回答3:

ECMAScript 6 introduces template strings:

Template strings are string literals allowing embedded expressions. You can use multi-line strings and string interpolation features with them.

For example,

alert(`Please Select file   
to delete`);

will alert

Please Select file   
to delete


回答4:

Break up the string into two pieces 

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


回答5:

Interesting to note. Tried:

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

And this worked. However, on accident!, there was a space character following the final backslash (all other backslashes were at the end of the line). And this caused an error in the javascript! Removing this space fixed the error, though.

This is in ADT for Android using Cordova.



回答6:

You can just use

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

That should work



回答7:

I tried a number of the above suggestions but got an ILLEGAL character warning in Chrome code inspector. The following worked for me (only tested in Chrome though!)

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

comes out like...

stuff on line 1
stuff on line 2

NOTE the double backslash!!...this seems to be important!



回答8:

No need of any manual break in code. Just add \\n where you want to break.

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

This will show the alert like

Please select file 
to delete.