亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

解析CSV數據的JavaScript代碼

解析CSV數據的JavaScript代碼

catspeake 2019-06-05 16:16:21
解析CSV數據的JavaScript代碼有人知道我在哪里可以找到一些javascript代碼來解析CSV數據嗎?
查看完整描述

3 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

它是一個jQuery插件,用于將CSV解析為Javascript數據的端到端解決方案。它處理在RFC 4180,還有一些彈出的Excel/GoogleSpreadsheed導出(即主要涉及空值),而規范缺少這些導出。

例子:

曲目,藝術家,專輯,年份

“危險”,“Busta節奏”,“災難降臨時”,1997年

//?calling?thismusic?=?$.csv.toArrays(csv)//?outputs...[
??["track","artist","album","year"],
??["Dangerous","Busta?Rhymes","When?Disaster?Strikes","1997"]]console.log(music[1][2])?//?outputs:?'When?Disaster?Strikes'

最新情況:

哦,是的,我也應該提到它是完全可配置的。

music?=?$.csv.toArrays(csv,?{
??delimiter:"'",?//?sets?a?custom?value?delimiter?character
??separator:';',?//?sets?a?custom?field?separator?character});

更新2:

它現在也適用于Node.js上的jQuery。因此,您可以選擇使用相同的lib進行客戶端或服務器端解析。

查看完整回答
反對 回復 2019-06-05
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

我有一個實施作為電子表格項目的一部分。

這段代碼還沒有經過徹底的測試,但是歡迎任何人使用它。

但是,正如一些答案所指出的那樣,如果您實際擁有的話,您的實現可能要簡單得多。DSV或TSV文件,因為它們不允許在值中使用記錄和字段分隔符。另一方面,csv實際上可以在字段中有逗號和換行符,這破壞了大多數正則表達式和基于拆分的方法。

var?CSV?=?{parse:?function(csv,?reviver)?{
????reviver?=?reviver?||?function(r,?c,?v)?{?return?v;?};
????var?chars?=?csv.split(''),?c?=?0,?cc?=?chars.length,?start,?end,?table?=?[],?row;
????while?(c?<?cc)?{
????????table.push(row?=?[]);
????????while?(c?<?cc?&&?'\r'?!==?chars[c]?&&?'\n'?!==?chars[c])?{
????????????start?=?end?=?c;
????????????if?('"'?===?chars[c]){
????????????????start?=?end?=?++c;
????????????????while?(c?<?cc)?{
????????????????????if?('"'?===?chars[c])?{
????????????????????????if?('"'?!==?chars[c+1])?{?break;?}
????????????????????????else?{?chars[++c]?=?'';?}?//?unescape?""
????????????????????}
????????????????????end?=?++c;
????????????????}
????????????????if?('"'?===?chars[c])?{?++c;?}
????????????????while?(c?<?cc?&&?'\r'?!==?chars[c]?&&?'\n'?!==?chars[c]?&&?','?!==?chars[c])?{?++c;?}
????????????}?else?{
????????????????while?(c?<?cc?&&?'\r'?!==?chars[c]?&&?'\n'?!==?chars[c]?&&?','?!==?chars[c])?{?end?=?++c;?}
????????????}
????????????row.push(reviver(table.length-1,?row.length,?chars.slice(start,?end).join('')));
????????????if?(','?===?chars[c])?{?++c;?}
????????}
????????if?('\r'?===?chars[c])?{?++c;?}
????????if?('\n'?===?chars[c])?{?++c;?}
????}
????return?table;},stringify:?function(table,?replacer)?{
????replacer?=?replacer?||?function(r,?c,?v)?{?return?v;?};
????var?csv?=?'',?c,?cc,?r,?rr?=?table.length,?cell;
????for?(r?=?0;?r?<?rr;?++r)?{
????????if?(r)?{?csv?+=?'\r\n';?}
????????for?(c?=?0,?cc?=?table[r].length;?c?<?cc;?++c)?{
????????????if?(c)?{?csv?+=?',';?}
????????????cell?=?replacer(r,?c,?table[r][c]);
????????????if?(/[,\r\n"]/.test(cell))?{?cell?=?'"'?+?cell.replace(/"/g,?'""')?+?'"';?}
????????????csv?+=?(cell?||?0?===?cell)???cell?:?'';
????????}
????}
????return?csv;}};


查看完整回答
反對 回復 2019-06-05
  • 3 回答
  • 0 關注
  • 1411 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號