【问题标题】:parsing csv data in javascript not working in chrome在javascript中解析csv数据在chrome中不起作用
【发布时间】:2017-02-20 20:02:36
【问题描述】:

我正在使用以下逻辑在 javascript 中解析 csv 文件。逻辑在firefox浏览器中正常工作,但在chrome浏览器上,输出不同。

 var r = new FileReader();
 r.onload = function (e) {
   contents = e.target.result;
     $scope.$apply(function () {
       $scope.fileReader = contents;
        contents = contents.replace(/\r\n+/g, ",");
        reqObj.names = contents.split(",");
        defer.resolve("Succesfully executed");
     });
  };
r.readAsText(file);

Firefox 中的输出: 名称:[“pradeep”、“naveen”、“kiran”] 在 Chrome 中输出: 名称:[“pradeep\nnaveen\nkiran”]

请告诉我哪里出错了。

【问题讨论】:

  • 检查你可能没有在 chrome 中运行脚本
  • 另外,您可以在准备好的函数中调用 get 方法
  • @claudios 你能告诉我/\r\n+/g在javascript中是什么意思
  • .replace(/\r\n+/g, ",") 多次替换后跟 1+ LF 符号和逗号的 CR。我想应该写成.replace(/(?:\r?\n)+/g, ",")

标签: javascript arrays string csv


【解决方案1】:

代码的.replace(/\r\n+/g, ",") 部分替换了多次出现的CR,后跟一个或多个带逗号的LF 符号。例如,它将替换为逗号"\r\n\n\n\n\n\n""\r\n",但永远找不到"\n\n\n\n"

由于换行符可以定义为 CRLF, CR, LF, 你可以把那部分改成

.replace(/(?:\r?\n|\r)+/g, ",")

替换 CRLF/LF/CR 类型的换行符。

var s = "pradeep\r\nnaveen\nkiran\rhere";
console.log(s.replace(/(?:\r?\n|\r)+/g, ","));

【讨论】:

    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 2011-04-01
    • 2010-11-26
    • 2012-03-28
    相关资源
    最近更新 更多