alv*_*spo 2 javascript csv lines count
我正在尝试使用Javascript来计算.csv文件中的行数,有人可以指导我的任何有用的提示或资源吗?
取决于你的意思.对于简单数量的换行,Robusto的答案很好.
如果您想知道代表多少行 CSV数据,可能会有些困难,因为CSV字段本身可能包含换行符:
field1,"field
two",field3
Run Code Online (Sandbox Code Playgroud)
...是一行,至少是RFC4180定义的CSV 格式.(这是CSV的加重功能之一,有很多非标准的变种; RFC本身在游戏中很晚.)
因此,如果您需要应对这种情况,您必须从根本上解析每个字段.
字段可以是原始的,或者(必要时,如果它包含\n或,)引用,"表示为双引号.因此,一个字段的正则表达式将是:
"([^"]|"")*"|[^,\n]*
Run Code Online (Sandbox Code Playgroud)
因此对于整行(假设它不是空的):
("([^"]|"")*"|[^,\n]*)(,("([^"]|"")*"|[^,\n]*))*\n
Run Code Online (Sandbox Code Playgroud)
并获得那些数量:
var rowsn= csv.match(/(?:"(?:[^"]|"")*"|[^,\n]*)(?:,(?:"(?:[^"]|"")*"|[^,\n]*))*\n/g).length;
Run Code Online (Sandbox Code Playgroud)
如果您足够幸运,可以处理符合RFC4180建议的CSV变体,即不带"引号的字段中没有字符,您可以使其更具可读性.像以前一样在换行符上拆分并计算"每行中的字符数.如果它是偶数,你就有一条完整的线; 如果它是一个奇数你就得分了.
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;
Run Code Online (Sandbox Code Playgroud)
要计算文档中的行数(一旦将其作为 Javascript 中的字符串),只需执行以下操作:
var lines = csvString.split("\n").length;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10619 次 |
| 最近记录: |