Languages
[Edit]
PL

JavaScript - jak podzielić ciąg znaków przez znak nowej linii?

0 points
Created by:
Dirask Community
5610

W tym artykule przyjrzymy się temu, jak podzielić ciąg znaków na oddzielne wiersze.

Szybki przegląd:

  • Rozwiązanie dla Linux i Windows:
// ONLINE-RUNNER:browser;

var text = '1\r\n2\r\n3';
var lines = text.split(/\r?\n/); //  \r\n  or  \n

console.log(lines);
  • Rozwiązanie dla wszystkich systemów operayjnych:
// ONLINE-RUNNER:browser;

var text = '1\r\n2\r\n3';
var lines = text.split(/\r\n|\n\r|\n|\r/); //  \r\n  ,  \n\r  ,  \n  or  \r

console.log(lines);

Poniżej przedstawiono opis problemu i przykłady, aby zobaczyć, jak to działa w praktyce.

1. Omówienie problemu

Różne systemy operacyjne mają różne nowe symbole linii.

Istnieje kilka najczęściej używanych nowych separacji wierszy:

\nMultics, Unix i systemy Unixowe (Linux, macOS, FreeBSD, AIX, Xenix, etc.), BeOS, Amiga, RISC OS, i inne.
\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, i większość innych wczesnych systemów operacyjnych innych niż Unix i IBM.
\rMaszyny 8-bitowe Commodore (C64, C128), Acorn BBC, ZX Spectrum, TRS-80, seria Apple II, Oberon, klasyczny Mac OS , MIT Lisp Machine i OS-9
\n\rbuforowane wyjście tekstowe Acorn BBC i RISC OS

Źródło: https://en.wikipedia.org/wiki/Newline

2. Uniwersalny przykład podziału nowych linii

To podejście działa we wszystkich systemach operacyjnych. Prezentowany przykład pokazuje operację rozdzielania na oddzielne wiersze na tekście mieszanym.

// ONLINE-RUNNER:browser;

var LINE_EXPRESSION = /\r\n|\n\r|\n|\r/g; // ważna jest kolejność symboli w wyrażeniu

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

var lines = text.split(LINE_EXPRESSION);

console.log(lines);

Uwaga: kolejność symboli w wyrażeniu jest bardzo ważna, aby zapobiec rozbijaniu się na nowe symbole linii, takie jak \r\n lub \n\r.

załóżmy, że mamy odpowiedź protokołu HTTP:

HTTP/1.1 200 OK\r\nContent-Length: 25\r\nContent-Type: text/html\r\n\r\nHello world!\nJakiś tekst...

dla \n lub \r na początku zmiennej LINE_EXPRESSION mogliśmy uzyskać inną liczbę nowych linii po podziale.

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

Systemy:  Atari TOS, Microsoft Windows , DOS ( MS-DOS , PC DOS itp.), DEC TOPS-10, RT-11, CP / M, MP / M, OS / 2, Symbian OS, Palm OS, Amstrad CPC i większość innych wczesnych systemów operacyjnych innych niż Unix i firm innych niż IBM.

4. Przykład podziału nowych linii w systemach Unix / Linux

// 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);

Systemy: systemy  Multics, Unix i uniksopodobne ( Linux , macOS , FreeBSD , AIX, Xenix itp.), BeOS, Amiga, RISC OS i inne.

5. Klasyczny przykład podziału nowych linii w systemie Mac OS / OS-9

// 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);

Systemy:  8-bitowe maszyny Commodore (C64, C128), Acorn BBC, ZX Spectrum, TRS-80, seria Apple II, Oberon, klasyczny Mac OS , MIT Lisp Machine i OS-9.

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