gpt4 book ai didi

javascript - 使用 Javascript 计算 CSV 中的行数

转载 作者:行者123 更新时间:2023-12-01 15:50:59 26 4
gpt4 key购买 nike

我正在想办法使用 Javascript 计算 .csv 文件中的行数,有人可以指导我使用任何有用的提示或资源吗?

最佳答案

取决于你所说的一行是什么意思。对于简单数量的换行符,Robusto 的回答很好。
如果您想知道代表多少行 CSV 数据,事情可能会更困难一些,因为 CSV 字段本身可能包含换行符:

field1,"field
two",field3
...是一行,至少在 RFC4180 定义的 CSV 中. (有许多非标准变体是 CSV 的恶化特征之一;RFC 本身很晚才出现。)
因此,如果您需要处理这种情况,则必须从本质上解析每个字段。
一个字段可以是原始的,或者(如果它包含 \n, 则必须)引用,用 "表示为双引号。所以一个字段的正则表达式是:
"([^"]|"")*"|[^,\n]*
所以对于整行(假设它不是空的):
("([^"]|"")*"|[^,\n]*)(,("([^"]|"")*"|[^,\n]*))*\n
并获得这些数量:
var rowsn= csv.match(/(?:"(?:[^"]|"")*"|[^,\n]*)(?:,(?:"(?:[^"]|"")*"|[^,\n]*))*\n/g).length;
如果您有幸处理符合 RFC4180 建议的 CSV 变体,即没有 "未引用字段中的字符,您可以使其更具可读性。像以前一样在换行符上拆分并计算 " 的数量每行中的字符。如果它是偶数,则您有完整的一行;如果它是一个奇数,你就会 split 。
var lines= csv.split('\n');
for (var i= lines.length; i-->0;)
if (lines[i].match(/"/g).length%2===1)
lines.splice(i-1, 2, lines[i-1]+lines[i]);
var rowsn= lines.length;

关于javascript - 使用 Javascript 计算 CSV 中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com