如何在行尾将每个字符串拆分为最多2000个字符?

时间:2017-09-19 17:06:24

标签: javascript arrays regex match

下面是一个名为results ...

的字符串变量的小样本
2017-09-18  920.0100  922.0800  910.5999  915.0000  1294800
2017-09-15  924.6599  926.4899  916.3599  920.2899  2505400
2017-09-14  931.2500  932.7700  924.0000  925.1099  1397600
2017-09-13  930.6599  937.2500  929.8599  935.0900  1102600
2017-09-12  932.5900  933.4799  923.8610  932.0700  1134400
2017-09-11  934.2500  938.3800  926.9199  929.0800  1267000
2017-09-08  936.4899  936.9899  924.8800  926.5000  995100
2017-09-07  931.7299  936.4099  923.6199  935.9500  1212700

如何将其拆分为一个数组,每个部分包含尽可能接近2000个字符并在行尾结束。一直在使用以下但是结束了数组中的每个项目。

var parts = results.match(/[\s\S]{1,2000}/g);

2 个答案:

答案 0 :(得分:1)

代码

See this code in use here

[\s\S]{1,200}(?:\v|$)

说明

  • 匹配任意字符1至200次
  • 匹配垂直空白字符\v或字符串/文件末尾$

显然,在你的情况下,你会使用2000而不是200。

答案 1 :(得分:1)

为确保每场比赛最多可达200​​0个字符,您可以使用

var parts = results.match(/[\s\S]{1,2000}$/gm);

<强>详情

  • [\s\S]{1,2000} - 1到2000个任何字符,尽可能多,
  • $ - 行尾
  • /gm - 启用多次匹配(g)并强制$匹配行尾(m)。