csv文件中的Jscript String.split,忽略前导空字段

时间:2015-06-02 18:27:19

标签: csv split jscript

嘿伙计们我需要一些帮助来弄清楚如何编写这个jscript所以它包括在开头用逗号分隔的空字段并将它们放在一个数组中。

temp = new Array;
String = ",,field3,field4,,field6";
temp = String.split(regexp, -1);

我有一个可以选择逗号的正则表达式。但我知道分裂会忽略空场。因为我正在阅读csv文件,所以我需要这些字段。所以我需要数组包含空字符串,其中有一个空数据字段。

我想要什么

  

temp [0] ="",   temp [1] ="",   temp [3] = field 3

它是什么

  

temp [0] = field3

像这样,任何想法或解决方法?

1 个答案:

答案 0 :(得分:0)

JScript相当奇特的行为*的解决方法是使用字符串(而不是正则表达式)分隔符:

var s = ",,field3,field4,,field6";
var a = s.split(",");
WScript.Echo("a:", a.length, "[" + a.join(",") + "]");
var b = s.split(/,{1,1}/);
WScript.Echo("b:", b.length, "[" + b.join(",") + "]");

输出:

cscript 30603770.js
a: 6 [,,field3,field4,,field6]
b: 3 [field3,field4,field6]

(*)至少有一个其他Javascript实现的行为应该如下:

Rhino 1.7 release 5 PRERELEASE 2013 07 16
js> var s = ",,field3,field4,,field6";
js> var a = s.split(",");
js> print("a:", a.length, "[" + a.join(",") + "]");
a: 6 [,,field3,field4,,field6]
js> var b = s.split(/,/);
js> print("b:", b.length, "[" + b.join(",") + "]");
b: 6 [,,field3,field4,,field6]