在Javascript中替换Windows回车

时间:2013-06-19 20:18:51

标签: javascript regex arrays parsing

我有一个文本文件,我试图用Javascript解析成一个数组。

字段由双克拉('^^')分隔,行以换行符('\ n')

结束

其中一个字段是自由流动的文本说明,用户通常通过从PDF复制和粘贴数据来输入数据。这会将rouge回车引入我的流('\ 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 Gulch之间有一个换行符,它决定了新唱片的开头。

我已经搜索了一个正则表达式来替换我的文本中的CR / LF,这就是我所拥有的:

var eplaceCarriageReturns = function(str) {
  var regxp = /[\r\n]/g
  str = str.replace(regxp, " ");
  return str;
}

问题是,这现在也吃了我的换行,把我的流变成了一个大块。如果这是唯一的方法,我会在如何解析它时留下空白,因为我的换行符是唯一表示新记录的内容。

这个问题困扰了我多年。我已经通过删除所有“CR / LF”然后用'^^'转换替换剩余的换行符来解决它。这允许我使用string.split('^^')然后将每23个切片组合成一个新数组。

但似乎无法在Javascript中弄明白。

2 个答案:

答案 0 :(得分:2)

请改为尝试:

var regxp = /\r\n/g;

答案 1 :(得分:1)

你应该做这个替代:

str = str.replace(/\r/g, "");