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

Javascript 如何在行尾将字符串拆分为最多2000个字符?,javascript,arrays,regex,match,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

下面是一个名为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);
代码

解释
  • 匹配1到200次之间的任意字符
  • 匹配垂直空白字符
    \v
    或字符串/文件的结尾
    $

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

为了确保在每次比赛中最多获得2000个字符,您可以使用

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

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

如果我在你的链接中将flavor更改为Javascript(我正在使用),它不会在行末拆分。你是否使用
m
标志?谢谢,工作正常,你的代码与ctwheels发布的代码之间的主要区别是什么?否
\v
(JS正则表达式引擎不支持)。此外,我还解释了为什么
m
很重要-它使
$
锚点匹配一行的末尾,而不是整个字符串。
var parts = results.match(/[\s\S]{1,2000}$/gm);