通过ajax得到csv文件的内容,想将每一行数据按照tab符号进行分割,得到每一个项目的内容。
现在遇到一个问题,如果csv文件中某一项内容为空,那么就会出现连续的tab符号。但是在IE下,split(/\t/g)之后,会把几个连续的tab符号当做一个tab符号进行分割,这样得到的项目数就比定义的要少,项目的位置也会发生错位。csv文件的分隔符只能用tab,这个是既存系统中已经定义好的,无法修改用逗号当做分隔符。请问如何解决这种情况。
现在遇到一个问题,如果csv文件中某一项内容为空,那么就会出现连续的tab符号。但是在IE下,split(/\t/g)之后,会把几个连续的tab符号当做一个tab符号进行分割,这样得到的项目数就比定义的要少,项目的位置也会发生错位。csv文件的分隔符只能用tab,这个是既存系统中已经定义好的,无法修改用逗号当做分隔符。请问如何解决这种情况。
function getDataRows(text){
var sepChar = '\t';
var dataRows = new Array(); if(text == '') {
return dataRows;
} var arr = text.split(/\r\n/g);
if(arr.length == 0) {
return dataRows;
} for (var i=0; i<arr.length; i++) {
if(arr[i] == '') {
continue;
}
dataRows[i] = new Array();
var j = 0;
var tabIndex = 0;
while (tabIndex > -1) {
tabIndex = arr[i].indexOf(sepChar);
if(tabIndex > -1){
dataRows[i][j] = arr[i].substring(0, tabIndex);
arr[i] = arr[i].substring(tabIndex+1);
j++;
}
else {
dataRows[i][j] = arr[i];
}
}
} return dataRows;
}