Как в узле разбить строку по новой строке ('\ n')? У меня есть простая строка, как var a = "test.js\nagain.js"
и мне нужно получить ["test.js", "again.js"]
. Я попытался
a.split("\n");
a.split("\\n");
a.split("\r\n");
a.split("\r");
но ничего из вышеперечисленного не работает.
javascript
node.js
PaolaJ.
источник
источник
split()
не изменяет исходную строку.Ответы:
Попробуйте разделить на регулярные выражения,
/\r?\n/
чтобы их можно было использовать в системах Windows и UNIX.источник
split(/[\r\n]+/)
Если файл является родным для вашей системы (конечно, нет никаких гарантий), то Node может помочь вам:
Это обычно более полезно для построения выходных строк из Node, хотя для переносимости платформы.
источник
Похоже, регулярное выражение
/\r\n|\r|\n/
обрабатывает окончания строк CR, LF и CRLF, их смешанные последовательности и сохраняет все пустые строки между ними. Попробуй это!Вы должны получить эти массивы в результате:
Вы также можете научить это регулярное выражение распознавать другие допустимые терминаторы строки Unicode , добавляя
|\xHH
или|\uHHHH
разделяя их, гдеH
это шестнадцатеричные цифры дополнительной кодовой точки символа-терминатора (как видно из статьи в ВикипедииU+HHHH
).источник
Обратите внимание, что
split
ting возвращает новый массив, а не просто присваивает его исходной строке. Вам необходимо явно сохранить его в переменной.источник
Решение, которое работает со всеми возможными окончаниями строк, включая смешанные и сохраняя пустые строки, может быть достигнуто с помощью двух замен и одного разбиения следующим образом
некоторый код, чтобы проверить это
и выход
источник
Первый должен работать:
источник
Я сделал
eol
модуль для работы с окончаниями строк в узле или браузерах. У него есть метод разделения, какисточник
.split (String.fromCharCode (10))
источник
split("\n")
.