2016-12-29 2 views
1

Ich habe eine 10 Millionen Zeile Textdatei geladen als String in einer Variablen "SomeString" gespeichert. Ich möchte ein Array generieren, in dem jede Zeile ein Element ist. Ich weiß, dass das zu tun, würde ich Folgendes tun:Javascript Split und Trim-Delineator

var files = someString.split("\n"); 

Dies ist jedoch den Zeilenumbruch Symbol \ hält n nach jedem Punkt. Was ist die effizienteste Weise, dieses von jedem Einzelteil zu trimmen?

+2

Wahrscheinlich sind die Daten im CRLF-Format (typisch für Windows-Text). Sie teilen sich auf 'LF' (' \ n') aber das 'CR' (' \ r') ist immer noch vorhanden – Phil

+1

10M Zeilen ist eine Menge Daten in JS zu behandeln. Sie könnten mit etwas besser sein, das die Daten streamen kann, anstatt alles in den Speicher zu laden. – Phil

Antwort

2

Versuchen Sie, ein regex Begrenzer mit unterschiedlichen Zeilenende-Zeichen für Windows (\r\n) und andere (\noder\r)

someString.split(/\r\n|\r|\n/) 
-1

ich auf How to remove all line breaks from a string? diese Antwort gefunden zu behandeln.

someText = someText.replace (/ (\ r \ n | \ n | \ r)/gm, "");

+1

OP möchte ein Array von Zeichenfolgen, nicht eine einzelne Zeichenfolge, bei der alle Zeilenendezeichen entfernt wurden – Phil