Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换Javascript中的windows回车符_Javascript_Regex_Arrays_Parsing - Fatal编程技术网

替换Javascript中的windows回车符

替换Javascript中的windows回车符,javascript,regex,arrays,parsing,Javascript,Regex,Arrays,Parsing,我有一个文本文件,我正试图用Javascript将其解析成一个数组 字段由双克拉(“^^”)分隔,行由换行符(“\n”)终止 其中一个字段是自由流动的文本描述,用户通常通过从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^^Vic

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

字段由双克拉(“^^”)分隔,行由换行符(“\n”)终止

其中一个字段是自由流动的文本描述,用户通常通过从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 Gulch之间有一个换行符,用于确定新记录的开始

我已经搜索了一个正则表达式来替换我文本中的CR/LFs,下面是我得到的:

var eplaceCarriageReturns = function(str) {
  var regxp = /[\r\n]/g
  str = str.replace(regxp, " ");
  return str;
}
问题是,这也会吃掉我的换行符,将我的流变成一个大的块。如果这是唯一的方法,我在如何解析它上画了一个空白,因为我的换行符是唯一表示新记录的东西

这个问题多年来一直困扰着我。我在Ruby中解决了这个问题,只需删除所有的“CR/LF”,然后将剩余的换行符转换为“^^”。这使我能够string.split('^^'),然后将每23个切片分块到一个新数组中

但在Javascript中似乎无法理解。请尝试以下方法:

var regxp = /\r\n/g;
请尝试以下方法:

var regxp = /\r\n/g;

您只需执行以下替换操作:

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

您只需执行以下替换操作:

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

因此,只需使用
/\r/g
替换CR即可?我不知道你在问什么。嗯,
/[\r\n]/g
是一个字符类,因此它将匹配任何出现的
\r
\n
,但不是两者的组合。也许你只想在他们紧挨着的时候配对?那将是
/\r\n/g
。我想你已经掌握了一些东西。我想我的正则表达式没有像我想象的那样。我现在要检查一下。那么用
/\r/g
替换CR好吗?我不知道你在问什么。嗯,
/[\r\n]/g
是一个字符类,因此它将匹配任何出现的
\r
\n
,但不是两者的组合。也许你只想在他们紧挨着的时候配对?那将是
/\r\n/g
。我想你已经掌握了一些东西。我想我的正则表达式没有像我想象的那样。我现在要检查一下。