我正在尝试使用javascript来读取包含CSV格式内容的txt文件,解析它并将其加载到单个数组中,这样我就可以对它进行数学运算(总和,平均值,标准偏差) 。我得到了阅读文本文件,我需要帮助解析它。
谢谢!
inputExample.txt
5,4,4,4,4
3,3,3,3,2
1,5,4,7,6
的index.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<input type="file" id="openFile" />
<br>
<pre id="fileContents"></pre>
<script type="text/javascript" src="app.js"></script>
</body>
</html>
app.js
document.getElementById("openFile").addEventListener('change', function(){
var fr = new FileReader();
fr.onload = function(){
// document.getElementById("fileContents").textContent = this.result;
console.log(this.result);
}
fr.readAsText(this.files[0]);
})
答案 0 :(得分:2)
var arr = this.result.split(',');
如果您的内容也以新行分隔为示例,则可以用逗号替换它们,然后拆分它们。
var arr = this.result.replace(/\n/g, ',').split(',');
答案 1 :(得分:0)
这是一个非常常见的问题。您可以使用正则表达式或字符串操作。
这个使用正则表达式:
// I am assuming your file has newline and carriage return, depending on your file format, it may have either of them or both of them
var foo = "5,4,4,4,4\n\r3,3,3,3,2\n\r1,5,4,7,6";
var regex = /(\d)(?=,|\n\r?)?/g;
var arr = foo.match(regex);
console.log(arr); //[ '5', '4', '4', '4', '4', '3', '3', '3', '3', '2', '1', '5', '4', '7' ]
这个使用字符串操作:
var foo = "5,4,4,4,4\n\r3,3,3,3,2\n\r1,5,4,7,6";
var arr = [];
foo = foo.split('\n\r').forEach(function(el){
el = el.split(',').forEach(x => arr.push(x));
});
console.log(arr); //[ '5', '4', '4', '4', '4', '3', '3', '3', '3', '2', '1', '5', '4', '7', '6' ]
查看此链接,了解如何详细解析csv。
How can I parse a CSV string with Javascript, which contains comma in data?