【问题标题】:Jscript String.split on csv file, Ignores leading empty fieldscsv文件上的Jscript String.split,忽略前导空字段
【发布时间】:2015-06-02 18:27:18
【问题描述】:

大家好,我需要一些帮助来弄清楚如何编写这个 jscript,以便它包含开头用逗号分隔的空字段并将它们放入一个数组中。

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

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

我想要什么

温度[0] = "", 温度[1] = "", temp[3] = 字段 3

它是什么

temp[0] = field3

这样,有什么想法或解决方法吗?

【问题讨论】:

    标签: csv split jscript


    【解决方案1】:

    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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2017-09-14
      • 1970-01-01
      相关资源
      最近更新 更多