我有一个逗号分隔的字符串,我想转换成一个数组,所以我可以循环它.
有内置的东西吗?
例如,我有这个字符串
var str = "January,February,March,April,May,June,July,August,September,October,November,December";
Run Code Online (Sandbox Code Playgroud)
现在想用逗号分割它并存储在Array对象中
我的csv数据如下所示:
标题1,heading2,heading3,heading4,heading5,value1_1,value2_1,value3_1,value4_1,value5_1,value1_2,value2_2,value3_2,value4_2,value5_2 ....
你如何使用Javascript读取这些数据并转换为这样的数组?:
[heading1:value1_1,heading2:value2_1,heading3:value3_1,heading4:value4_1,heading5:value5_1],[heading1:value1_2,heading2:value2_2,heading3:value3_2,heading4:value4_2,heading5:value5_2] ....
我试过这段代码但没有运气!:
<script type="text/javascript">
var allText =[];
var allTextLines = [];
var Lines = [];
var txtFile = new XMLHttpRequest();
txtFile.open("GET", "file://d:/data.txt", true);
txtFile.onreadystatechange = function()
{
allText = txtFile.responseText;
allTextLines = allText.split(/\r\n|\n/);
};
document.write(allTextLines);<br>
document.write(allText);<br>
document.write(txtFile);<br>
</script>
Run Code Online (Sandbox Code Playgroud) 我想将csv文件转换为json.我在用 .
示例CSV:
a,b,c,d
1,2,3,4
5,6,7,8
...
Run Code Online (Sandbox Code Playgroud)
期望的JSON:
{"a": 1,"b": 2,"c": 3,"d": 4},
{"a": 5,"b": 6,"c": 7,"d": 8},
...
Run Code Online (Sandbox Code Playgroud)
我尝试了node-csv解析器库.但是输出就像数组一样,不像我预期的那样.
我正在使用Node 0.8和express.js,并希望了解如何轻松实现这一目标.
我正在寻找[a, b, c, "d, e, f", g, h]变成6个元素的数组:a,b,c,"d,e,f",g,h.我是RegEx的一个菜鸟,所以任何帮助都很棒.我试图通过Javascript来做到这一点.这是我到目前为止:
str = str.split(/,+|"[^"]+"/g);
Run Code Online (Sandbox Code Playgroud)
但是现在它正在拆分双引号中的所有内容,这是不正确的.谢谢你的帮助.
编辑:好的抱歉,我的措辞非常糟糕.我被给了一个字符串而不是一个数组.
var str = 'a, b, c, "d, e, f", g, h';
Run Code Online (Sandbox Code Playgroud)
我希望使用类似"拆分"功能的方法将其转换为数组.
我知道这个(或类似的)已被多次询问,但尝试了许多可能性,我无法找到一个100%正常的正则表达式.
我有一个CSV文件,我试图将它拆分成一个数组,但遇到两个问题:引用逗号和空元素.
CSV看起来像:
123,2.99,AMO024,Title,"Description, more info",,123987564
Run Code Online (Sandbox Code Playgroud)
我试图使用的正则表达式是:
thisLine.split(/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/)
Run Code Online (Sandbox Code Playgroud)
唯一的问题是在我的输出数组中,第5个元素是123987564,而不是空字符串.
我正在创建一个允许用户上传 CSV 的应用程序。CSV 只是一个逗号分隔的文件。
在前端,我使用 PUT 请求将文件发送到后端:
Reactjs | 文件上传_frontend.js
sendFile = () => {
const data = new FormData();
data.append('file', this.myCSV_file);
axios.post('/parse-csv', data)
.then(response => console.log('File sent to server for parsing')
.catch(error => console.log(error);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码成功地将上传的 CSV(信息)发送到我的服务器,该服务器正在端点侦听/parse-csv。
我正在使用csv-parsernpm 包来帮助解决这个问题。
Nodejs | 文件上传后端.js
const csv = require('csv-parser');
const fs = require('fs');
const results = [];
app.post('/parse-csv', (request, response) => {
fs.createReadStream(request.files.file.data) { // this is a buffer on the req obj
.pipe(csv())
.on('data', results.push())
.on('end', (results) …Run Code Online (Sandbox Code Playgroud) 我在正则表达式方面不擅长.有人可以帮我写出正则表达式吗?
在阅读csv文件时,我可能有这样的值.
"Artist,Name",Album,12-SCS "val""u,e1",value2,value3
输出:
Artist,Name Album 12-SCS Val"u,e1 Value2 Value3
更新:我喜欢使用Oledb提供商的想法.我们在网页上有文件上传控制,我使用流阅读器读取文件的内容,而文件系统上没有实际的保存文件.有没有办法我可以使用Oledb提供程序,因为我们需要在连接字符串中指定文件名,在我的情况下,我没有在文件系统上保存文件.
如何将CSV文件中的数据转换为二维数组?
array[row][column]
Run Code Online (Sandbox Code Playgroud)
我已经有一个上传脚本,可以显示CSV文件中的所有数据.
我的代码的小片段,这里是完整的代码:http://jsfiddle.net/Meesz/wj6q7c30/
reader.onload = function (e) {
var table = document.createElement("table");
var rows = e.target.result.split("\n");
for (var i = 0; i < rows.length; i++) {
var row = table.insertRow(-1);
var cells = rows[i].split(",");
for (var j = 0; j < cells.length; j++) {
var cell = row.insertCell(-1);
cell.innerHTML = cells[j];
}
}
var dvCSV = document.getElementById("dvCSV");
dvCSV.innerHTML = "";
dvCSV.appendChild(table);
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含文件中CSV数据的长字符串.我想将它存储在JavaScript Array of Arrays中.但是一列中有任意文本.该文本可能包含双引号和逗号.
将CSV字符串拆分为单独的行字符串是没有问题的:
var theRows = theCsv.split(/\r?\n/);
但那我怎么能最好地划分每一行呢?
由于它是CSV数据,我需要用逗号分割.但
var theArray = new Array();
for (var i=0, i<theRows.length; i++) {
theArray[i] = theRows[i].split(',');
}
Run Code Online (Sandbox Code Playgroud)
不适用于包含引号和逗号的元素,如下例所示:
512,"""Fake News"" and the ""Best Way"" to deal with A, B, and C", 1/18/2019,media
Run Code Online (Sandbox Code Playgroud)
如何确保第二个元素正确存储在单个数组元素中
"Fake News" and the "Best Way" to deal with A, B, and C
Run Code Online (Sandbox Code Playgroud)
谢谢.
不幸的是,当我在那里尝试CSVtoArray函数时,看起来类似的建议解决方案不起作用.而不是返回数组元素,返回null值,如下面的评论中所述.