CSV到Javascript数组

嗨,
我需要将用户输入的CSV值转换为(数组的)Java数组.
不应进行服务器往返,应完全脱机/客户端.
如果可能,脚本应该是独立于浏览器的.
我看过之前的帖子
Http://www.thescripts.com/forum/thread146456.html
但找不到任何代码级提示.
我知道我可以使用拆分函数并编写自己的解析代码.但如果是一行,我知道逻辑可能类似于下面,但如果TextArea中有多行CSV数据怎么办?

选择 | 换行 | 行号
  1. function jsSplitString(stringToSplit){
  2.  
  3. var splitArray = stringToSplit.split(",");
  4.  
  5. for (var i = 0; i < splitArray.length; i++){
  6. // add to array 
  7. }
  8.  
  9. }
  10.  

-拉梅什.

# 回答1


嗨...
欢迎来到TSDN.
如果您有多行文字,您可以使用类似以下示例的内容,t是多行文字:

选择 | 换行 | 行号
  1. // multiline text
  2. var t = 'abcx,hjhk,hjsahk,klö\nabcx,hjhk,hjsahk,klö\n';
  3.  
  4. // we alert it to have a look :)
  5. alert(t);
  6.  
  7. // we split it first at the linebreaks
  8. var ts = t.split(/\n|\n\r/);
  9.  
  10. // alert first line
  11. alert(ts[0]);
  12.  

现在,您可以将其与您的代码结合使用.您应该走上正轨:)
致以亲切的问候

# 回答2

选择 | 换行 | 行号
  1. function csvArray(csv){
  2.     var i= 0, A= csv.split(/\s*\n\s*/);
  3.     while(A[i++]) A[i]= A[i].split(/ *, */);
  4.     return A;
  5. }

A中的每一项都将是该行数据的数组.
它将适用于一行或任意数量的行-
您通常不需要一行CSV文件.
在html术语中,每个A[index]数组可以是一行单元格.

# 回答3


注意:由于使用\s*...,这将修剪一行的所有前导和结束空格.
致以亲切的问候

标签: Javascript

添加新评论