Reputation: 88189
From this question, this ...
lines = foo.value.split(/\r\n|\r|\n/);
is one way to split a string, but how do I join it back with newlines?
Also, I wonder if I is say linux which uses whichever newline character, then switch to windows, won't my web app break? The newlines become not recognized? Or maybe the browser does some conversion?
Upvotes: 57
Views: 165398
Reputation: 11
lines.join('\n') worked for me to get elements in new line in windows machine.
Upvotes: 1
Reputation: 10818
The following seems a future-proof, os-independent code:
lines.join(`
`)
Upvotes: 4
Reputation: 163228
You can use the Array
object's join
method to glue together array elements into a string:
lines.join("\r\n");
In CSS: remember to use
white-space: pre;
Upvotes: 50
Reputation: 104760
Split it on /\r?\n/, in case the string includes the carriage returns with newlines.
join it with '\n', in any browser and any os.
Upvotes: 29
Reputation: 93664
If you want to join using newline characters, just do:
lines.join("\r\n");
But if you want to display on the HTML page, you'd want to wrap each line in <p></p>
tags:
html = "<p>" + lines.join("</p><p>") + "</p>";
Upvotes: 67
Reputation: 45715
As said, join is the best, but here is the hard way (untested, I hope it's not too trivial):
var result;
for (i=0;i<lines.length;i++){
result+=lines[i]+"\r\n"; //depends on OS
}
Upvotes: 0