Bagaimana dalam simpul untuk membagi string dengan baris baru ('\ n')? Saya memiliki string sederhana seperti var a = "test.js\nagain.js"
dan saya perlu mendapatkannya ["test.js", "again.js"]
. Saya mencoba
a.split("\n");
a.split("\\n");
a.split("\r\n");
a.split("\r");
tetapi tidak ada yang di atas tidak bekerja
javascript
node.js
PaolaJ.
sumber
sumber
split()
tidak mengubah string asli.Jawaban:
Coba pisahkan pada regex yang ingin
/\r?\n/
digunakan oleh sistem Windows dan UNIX.sumber
split(/[\r\n]+/)
Jika file tersebut asli dari sistem Anda (tentu saja tidak ada jaminan), maka Node dapat membantu Anda:
Ini biasanya lebih berguna untuk membangun string keluaran dari Node, untuk portabilitas platform.
sumber
Sepertinya regex
/\r\n|\r|\n/
menangani akhiran garis CR, LF, dan CRLF, urutan campurannya, dan menjaga semua garis kosong di antara. Coba itu!Anda harus mendapatkan array ini sebagai hasilnya:
Anda juga dapat mengajarkan regex untuk mengenali terminator Unicode line sah lainnya dengan menambahkan
|\xHH
atau|\uHHHH
bagian, di manaH
digit heksadesimal dari codepoint karakter terminator tambahan (seperti yang terlihat dalam artikel Wikipedia sebagaiU+HHHH
).sumber
Perhatikan bahwa
split
ting mengembalikan array baru, bukan hanya menetapkannya ke string asli. Anda perlu menyimpannya secara eksplisit dalam sebuah variabel.sumber
Sebuah solusi yang bekerja dengan semua kemungkinan akhir garis termasuk yang campuran dan menjaga garis kosong juga dapat dicapai dengan menggunakan dua penggantian dan satu pemecahan sebagai berikut
beberapa kode untuk mengujinya
dan hasilnya
sumber
Yang pertama harus bekerja:
sumber
Saya membuat
eol
modul untuk bekerja dengan ujung baris di node atau browser. Ini memiliki metode split sepertisumber