これが役立つかどうかはわかりませんが、役立つ場合はhttp://www.randomactsofsentience.com/2012/04/csv-handling-in-javascript.htmlを参照してください...
追加:上記にリンクされたソリューションに加えて(私の好み)、スタックされた正規表現のシェッドロードを使用してCSVをトークン化しましたが、カスタムエラー状態を変更するのは簡単ではありません...
重そうに見えますが、それでも数ミリ秒しかかかりません:
function csvSplit(csv){
csv = csv.replace(/\r\n/g,'\n')
var rows = csv.split("\n");
for (var i=0; i<rows.length; i++){
var row = rows[i];
rows[i] = new Array();
row = row.replace(/&/g, "&");
row = row.replace(/\\\\/g, "\");
row = row.replace(/\\"/g, """);
row = row.replace(/\\'/g, "'");
row = row.replace(/\\,/g, ",");
row = row.replace(/@/g, "@");
row = row.replace(/\?/g, "?");
row = row.replace(/"([^"]*)"/g, "@$1\?");
while (row.match(/@([^\?]*),([^\?]*)\?/)){
row = row.replace(/@([^\?]*),([^\?]*)\?/g, "@$1,$2?");
}
row = row.replace(/[\?@]/g, "");
row = row.replace(/\'([^\']*)\'/g, "@$1\?");
while (row.match(/@([^\?]*),([^\?]*)\?/)){
row = row.replace(/@([^\?]*),([^\?]*)\?/g, "@$1,$2?");
}
row = row.replace(/[\?@]/g, "");
row = row.split(",")
for (var j=0; j<row.length; j++){
col = row[j];
col = col.replace(/?/g, "\?");
col = col.replace(/@/g, "@");
col = col.replace(/,/g, ",");
col = col.replace(/'/g, '\'');
col = col.replace(/"/g, '\"');
col = col.replace(/\/g, '\\');
col = col.replace(/&/g, "&");
row[j]=col;
}
rows[i] = row;
}
return rows;
}