Wie im Knoten, um Zeichenfolge nach Zeilenumbruch ('\ n') zu teilen? Ich habe einfache Zeichenfolge wie var a = "test.js\nagain.js"
und ich muss bekommen ["test.js", "again.js"]
. Ich habe es versucht
a.split("\n");
a.split("\\n");
a.split("\r\n");
a.split("\r");
aber keines der oben genannten funktioniert nicht.
javascript
node.js
PaolaJ.
quelle
quelle
split()
ändert die ursprüngliche Zeichenfolge nicht.Antworten:
Versuchen Sie, einen regulären Ausdruck aufzuteilen
/\r?\n/
, der sowohl von Windows- als auch von UNIX-Systemen verwendet werden kann.quelle
split(/[\r\n]+/)
Wenn die Datei in Ihrem System nativ ist (sicherlich keine Garantie dafür), kann Node Ihnen helfen:
Dies ist normalerweise nützlicher für die Erstellung von Ausgabezeichenfolgen aus Node, um die Plattformportabilität zu gewährleisten.
quelle
Es sieht so aus, als würde Regex
/\r\n|\r|\n/
die Zeilenenden CR, LF und CRLF, ihre gemischten Sequenzen, behandeln und alle leeren Zeilen dazwischen behalten. Versuch das!Sie sollten diese Arrays als Ergebnis erhalten:
Sie können diesem regulären Ausdruck auch beibringen, andere legitime Unicode-Zeilenendezeichen zu erkennen, indem Sie
|\xHH
oder|\uHHHH
Teile hinzufügen , wobeiH
es sich um hexadezimale Ziffern des zusätzlichen Codezeichens für Abschlusszeichen handelt (siehe Wikipedia-Artikel alsU+HHHH
).quelle
Beachten Sie, dass
split
ting das neue Array zurückgibt, anstatt es nur der ursprünglichen Zeichenfolge zuzuweisen. Sie müssen es explizit in einer Variablen speichern.quelle
Eine Lösung, die mit allen möglichen Zeilenenden einschließlich gemischter Zeilen funktioniert und auch leere Zeilen beibehält, kann wie folgt durch zwei Ersetzungen und eine Aufteilung erreicht werden
etwas Code, um es zu testen
und die Ausgabe
quelle
Der erste sollte funktionieren:
quelle
Ich habe ein
eol
Modul für die Arbeit mit Zeilenenden in Knoten oder Browsern erstellt. Es hat eine Split-Methode wiequelle