Languages
[Edit]
EN

JavaScript - split string by new line character

31 points
Created by:
Gigadude
431

In this article, we're going to have a look at the problem of how to split string to separate lines in JavaScript.

Note: by default in JavaScript \n newline character should be used, but modern applications exchange information with external endpoints that force programmers to deal with different cases - this article provides quick solutuioins for the problem.

Quick solution:

// ONLINE-RUNNER:browser;

var text = 'line 1\nline 2';
var lines = text.split(/\r?\n/); // splits text by \r\n or \n

console.log(lines);              // ['line 1', 'line 2']

Note: the above solution was inspired with new line characters that are used on MacOS, Linux and Windows.

 

Alternative quick solutions 

  • It works on all operating systems:
// ONLINE-RUNNER:browser;

var text = 'line 1\r\n' +                   // \r\n - used as new line symbol
           'line 2\n' +                     // \n   - used as new line symbol
           'line 3';

var lines = text.split(/\r\n|\n\r|\n|\r/);  // split by:     \r\n  \n\r  \n  or  \r

console.log(lines);                         // array items:  line 1, line 2, line 3
  • It is an alternative¬†approach that uses \R¬†equivalent:
// ONLINE-RUNNER:browser;

var text = 'line 1\r\n' +         // \r\n - used as new line symbol
           'line 2\n' +           // \n   - used as new line symbol
           'line 3';

// https://dirask.com/posts/JavaScript-R-equivalent-in-RegEx-D9a2rD
//
var lines = text.split(/\u000D\u000A|[\u000A\u000B\u000C\u000D\u0085\u2028\u2029]/);

console.log(lines);               // array items:  line 1, line 2, line 3

 

Look at below problem description and examples to see how it works in practice.

1. Problem overview

Different operating systems have different newline symbols.

There are a few most commonly used new line separations:

\nMultics, Unix and Unix-like systems (Linux, macOS, FreeBSD, AIX, Xenix, etc.), BeOS, Amiga, RISC OS, and others.
\r\nAtari TOS, Microsoft Windows, DOS (MS-DOS, PC DOS, etc.), DEC TOPS-10, RT-11, CP/M, MP/M, OS/2, Symbian OS, Palm OS, Amstrad CPC, and most other early non-Unix and non-IBM operating systems.
\rCommodore 8-bit machines (C64, C128), Acorn BBC, ZX Spectrum, TRS-80, Apple II series, Oberon, the classic Mac OS, MIT Lisp Machine and OS-9
\n\rAcorn BBC and RISC OS spooled text output.

Source: https://en.wikipedia.org/wiki/Newline

 

2. Problem solutions

2.1. Universal new lines splitting example

It is possible to propose some universal regular expression that lest to get a very good splitting result.

It is necessary to use \r\n|\n\r|\n|\r as pattern.

Go to this article to see details and runnable example.

2.2. Alternative new lines splitting example using \R equivalent

Some modern regular expression implementations provide \R predefined character class,
e.g. Java, Notepad++, etc.

Most JavaScript engines don't support \R yet - so, it is required some trick.

Go to this article to see details and runnable example.

2.3. Microsoft Windows new lines splitting example

// ONLINE-RUNNER:browser;

var text = 'line 1\r\n' +
    'line 2\r\n' +
    'line 3\r\n' +
    'line 4\r\n' +
    'line 5';

var lines = text.split('\r\n');

console.log(lines);

Systems: Atari TOS, Microsoft Windows, DOS (MS-DOS, PC DOS, etc.), DEC TOPS-10, RT-11, CP/M, MP/M, OS/2, Symbian OS, Palm OS, Amstrad CPC, and most other early non-Unix and non-IBM operating systems.

2.4. Unix/Linux new lines splitting example

// ONLINE-RUNNER:browser;

var text = 'line 1\n' +
    'line 2\n' +
    'line 3\n' +
    'line 4\n' +
    'line 5';

var lines = text.split('\n');

console.log(lines);

Systems: Multics, Unix and Unix-like systems (Linux, macOS, FreeBSD, AIX, Xenix, etc.), BeOS, Amiga, RISC OS, and others.

2.5.  The classic Mac OS/OS-9 new lines splitting example

// ONLINE-RUNNER:browser;

var text = 'line 1\r' +
    'line 2\r' +
    'line 3\r' +
    'line 4\r' +
    'line 5';

var lines = text.split('\r');

console.log(lines);

Systems: Commodore 8-bit machines (C64, C128), Acorn BBC, ZX Spectrum, TRS-80, Apple II series, Oberon, the classic Mac OS, MIT Lisp Machine and OS-9. 

 

See also

  1. JavaScript - universal new lines splitting symbol example

  2. JavaScript - \R equivalent in RegEx
  3. Node.js - split string by new line character (JavaScript)

Alternative titles

  1. js split lines
  2. javascript split on newline
  3. javascript split by newline
  4. javascript split line break
  5. split by new line in javascript
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!

JavaScript - String (popular problems)

JavaScript - split string by newline
Native Advertising
ūüöÄ
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

‚̧ԳŹūüíĽ ūüôā

Join