如何使用JavaScript按日期拆分大字符串?

时间:2016-11-09 13:02:51

标签: javascript regex string

我已经将pdf文件变成了超过1,000,000个字符的巨大字符串。字符串中的日期格式为dd/mm/yyyy。我想把日期中的字符串拆分成较小的字符串。我试过以下:

var sectioned = hugeString.split(/^(0?[1-9]|[12][0-9]|3[01])[\/](0?[1-9]|1[012])[\/\-]\d{4}$/g);

但它没有用。我也试过hugeString.match(),但没有好结果。

甚至可以通过字符串函数实现这一点,还是应该考虑不同的方法?

String snippet:

....Section: 2 Interpretation E.R. 2 of 2012 02/08/2012 .....

1 个答案:

答案 0 :(得分:1)

您可以移除锚点,g修饰符(它是多余的)并使用非捕获组来避免在结果中输出日期。如果您需要拆分日期在拆分块中,请换入(?=PATTERN HERE)。但是,如果您更喜欢这种方法,请确保开头的模式中没有可选的0,否则您可能会在结果中获得冗余元素。

var s = "....Section: 2 Interpretation E.R. 2 of 2012      02/08/2012 ..... ";
var res = s.split(/(?:0?[1-9]|[12][0-9]|3[01])[\/-](?:0?[1-9]|1[012])[\‌/-]\d{4}/);
console.log(res);
res = s.split(/(?=(?:0[1-9]|[12][0-9]|3[01])[\/-](?:0[1-9]|1[012])[\‌/-]\d{4})/);
console.log(res);

注意,模式中还有一个[\/]子模式没有-,而另一个分隔符字符类包含两个字符。我建议在两种情况下使用[\/-]