How do I break a string across more than one line of code in JavaScript?
JavascriptLine BreaksJavascript Problem Overview
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....
- alert ( "Please Select file
- \ to delete" );
Javascript Solutions
Solution 1 - Javascript
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();
}
Solution 2 - Javascript
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
.
Solution 3 - Javascript
ECMAScript 6 introduced 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
Solution 4 - Javascript
Break up the string into two pieces
alert ("Please select file " +
"to delete");
Solution 5 - Javascript
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.
Solution 6 - Javascript
You can just use
1: alert("Please select file" +
2: " to delete");
That should work
Solution 7 - Javascript
The backslash operator is not reliable. Try pasting this function in your browser console:
function printString (){
const s = "someLongLineOfText\
ThatShouldNotBeBroken";
console.log(s);
}
and then run it. Because of the conventional (and correct) indentation within the function, two extra spaces will be included, resulting in someLongLineOfText ThatShouldNotBeBroken
.
Even using backticks will not help in this case. Always use the concatenation "+" operator to prevent this type of issue.
Solution 8 - Javascript
You can break a long string constant into logical chunks and assign them into an array. Then do a join
with an empty string as a delimiter.
var stringArray = [
'1. This is first part....',
'2. This is second part.....',
'3. Finishing here.'
];
var bigLongString = stringArray.join('');
console.log(bigLongString);
Output will be:
> 1. This is first part....2. This is second part.....3. Finishing here.
There's a slight performance hit this way but you gain in code readability and maintainability.
Solution 9 - Javascript
A good solution here for VSCode users, if a string breaking down into multiple lines causes the problem (I faced this when I had to test a long JWT token, and somehow using template literals didn't do the trick.)
Solution 10 - Javascript
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!
Solution 11 - Javascript
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.