У меня есть текстовый файл, который я пытаюсь проанализировать в массиве в Javascript.Заменить возврат каретки окон в Javascript
Поля разделяются двойной карат («^^») и строки заканчиваются символом новой строки («\ п»)
Одно из полей является сыпучий текстовое описание и пользователи часто вступают данные путем копирования и вставки его из PDF. Это вводит возврат каретки в мой поток ('\ r \ n').
поток выглядит следующим образом:
Silver^^NM-GNF-000230^^Y^^18-JUN-13^^1800^^07-JUN-13^^L^^WF^^Matt Reidy^^2^^NM^^GNF^^Grant^^32.888889^^107.809722^^Vicinity of Kingston, NM^^24800^^ACRES^^5^^^^Highly varied fuels ranging from dry mixed conifer at the highest elevations to ponderosa pine, Pinyon-Juniper and interior chaparral dominate the lower elevations. Fuel loading is high due to lack of fire disturbance in past century.^^Extreme^^5590600 Ward Gulch^^CO-GWD-122^^Y^^18-JUN-13^^1730^^14-JUN-13^^L^^WF^^Jeff Berino^^3^^CO^^GWD^^Garfield^^39.689167^^107.734722^^10 miles North of Rifle, Colorado^^485^^ACRES^^95^^19-JUN-13^^Pinon juniper, sage, mixed conifer^^High^^1500000
Существует перевода строки между 5590600 и Ward лощину, который определяет начало новой записи.
Я искал регулярное выражение для замены CR/ЛФА в моем тексте, и вот что у меня есть:
var eplaceCarriageReturns = function(str) {
var regxp = /[\r\n]/g
str = str.replace(regxp, " ");
return str;
}
Проблема заключается в том, это сейчас ест мой перевод строку тоже, превращая мой поток в один большой блок , Если это единственный способ, я рисую пробел в том, как его анализировать, поскольку мои новые строки - единственное, что означает новую запись.
Эта проблема мучила меня годами. Я решил это в Ruby, просто удалив все «CR/LF», а затем преобразовывая замену оставшихся строк новой строки на «^^». Это позволяет мне string.split ('^^'), а затем класть каждый 23 среза в новый массив.
Не может показаться, что это видно в Javascript.
Так просто заменить CR с помощью '/ \ г/G'? Я не уверен, что вы спрашиваете. – bfavaretto
Ну, '/ [\ r \ n]/g' - класс символов, поэтому он будет соответствовать любым вхождениям * либо *' \ r', либо '\ n', но не два из них объединены. Может быть, вы хотите только совместить, когда они рядом друг с другом? Это будет '/ \ r \ n/g'. – eldarerathis
Я думаю, вы на что-то с этим. Я думаю, что мое регулярное выражение не делает то, что я так и думал. Я собираюсь проверить это сейчас. –