嗨,
我需要将用户输入的CSV值转换为(数组的)Java数组.
不应进行服务器往返,应完全脱机/客户端.
如果可能,脚本应该是独立于浏览器的.
我看过之前的帖子
Http://www.thescripts.com/forum/thread146456.html
但找不到任何代码级提示.
我知道我可以使用拆分函数并编写自己的解析代码.但如果是一行,我知道逻辑可能类似于下面,但如果TextArea中有多行CSV数据怎么办?
- function jsSplitString(stringToSplit){
-
- var splitArray = stringToSplit.split(",");
-
- for (var i = 0; i < splitArray.length; i++){
- // add to array
- }
-
- }
-
-拉梅什.
# 回答1
嗨...
欢迎来到TSDN.
如果您有多行文字,您可以使用类似以下示例的内容,t是多行文字:
- // multiline text
- var t = 'abcx,hjhk,hjsahk,klö\nabcx,hjhk,hjsahk,klö\n';
-
- // we alert it to have a look :)
- alert(t);
-
- // we split it first at the linebreaks
- var ts = t.split(/\n|\n\r/);
-
- // alert first line
- alert(ts[0]);
-
现在,您可以将其与您的代码结合使用.您应该走上正轨:)
致以亲切的问候
# 回答2 - function csvArray(csv){
- var i= 0, A= csv.split(/\s*\n\s*/);
- while(A[i++]) A[i]= A[i].split(/ *, */);
- return A;
- }
A中的每一项都将是该行数据的数组.
它将适用于一行或任意数量的行-
您通常不需要一行CSV文件.
在html术语中,每个A[index]数组可以是一行单元格.
# 回答3
注意:由于使用\s*...,这将修剪一行的所有前导和结束空格.
致以亲切的问候