Javascript jQuery CSV插件赢得';t将行拆分为数组的数组
我正在尝试使用jQuery“CSV”插件,如下所述: 根据文件:Javascript jQuery CSV插件赢得';t将行拆分为数组的数组,javascript,jquery,html,csv,html-table,Javascript,Jquery,Html,Csv,Html Table,我正在尝试使用jQuery“CSV”插件,如下所述: 根据文件: // Convert CSV data into array of arrays jQuery.csv()("1,2,3\n4,5,6\n7,8,9\n"); // = [ [1,2,3], [4,5,6], [7,8,9] ] 但是当我尝试做类似的事情时,它似乎把“\n”当作数组元素中间的另一个字符。< /P> 我做错了什么? 我正在使用jQuery1.4.2和Firefox3.5.10进行测试。我还用jQuery1.3尝试了
// Convert CSV data into array of arrays
jQuery.csv()("1,2,3\n4,5,6\n7,8,9\n"); // = [ [1,2,3], [4,5,6], [7,8,9] ]
<>但是当我尝试做类似的事情时,它似乎把“\n”当作数组元素中间的另一个字符。< /P>
我做错了什么?
我正在使用jQuery1.4.2和Firefox3.5.10进行测试。我还用jQuery1.3尝试了它,得到了相同的结果
如果插件有问题,那么有人能推荐另一个插件来读取CSV吗?
我的最终目标是将CSV从字符串转换为HTML表;我能找到的唯一一个专门用于此目的的插件要求CSV来自一个文件,这对于我的任务来说是不可取的
下面是我放在一起的一个最小测试页面,它说明了它并没有将行分割成子数组:
<html>
<head>
<title>CSVtest</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery.csv.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var lines = $.csv()("a,b\nc,d");
alert(lines[0][1]); // Displays: b
// c instead of the expected b
});
</script>
</head>
<body>
</body>
</html>
CSVtest
$(文档).ready(函数(){
变量行=$.csv()(“a,b\nc,d”);
警报(第[0][1]行];//显示:b
//c而不是预期的b
});
如果您只处理简单数据(无报价),您可以执行以下操作:
function csv(text) {
var lines = text.split("\n");
for ( var i = 0; i < lines.length; i++ ) {
if (!lines[i])
lines.splice(i, 1);
else
lines[i] = lines[i].split(",");
}
return lines;
}
函数csv(文本){
变量行=text.split(“\n”);
对于(变量i=0;i
确保您正在使用插件的。我使用jQuery 1.4.2和(现在已经过时的)CSV插件复制并粘贴了您的示例,效果很好
在IE8、IE6、Google Chrome和Firefox中测试。我还做了测试
alert(lines[1][1]);
果然,警报显示为“d”。确保使用双引号而不是单引号,因为双引号不能很好地识别换行符。@Steven Xu,JavaScript字符串不是这样。除了明显的区别之外,
“
和”
。我可以自己编写解析代码,但我无法控制传入的数据流;可以在引号中嵌入逗号,在引号中嵌入引号,或者其他我不想重新发明的标准CSV内容。啊哈。。愚蠢的老我,我相信第一个谷歌匹配将是最新版本。从你的链接下载新版本似乎可以解决这个问题。jquery.csv.min.js的最新版本是@。我知道,我是jquery csv的作者。(:@Evan:awesome,我已经更新了答案以反映当前位置。我刚刚意识到,尽管文件名相同,但它使用的是不同的解析器。您的答案使用jquery csv,但op问题中库的API调用。调用应该是$.csv.toarray()