简体   繁体   中英

JavaScript Newline Character

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?

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>";

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;

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.

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
}

The following seems a future-proof, os-independent code:

lines.join(`
`)

I used '\r' is OK, macOS 12.6, chrome 109.0.5414.119

lines.join('\r')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM