在JavaScript中将大字符串拆分为n个大小的块?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

我想把一个很大的字符串(比如说10000个字符)分成N个大小的块。

在性能方面,什么是最好的方法来做到这一点?

提问于
用户回答回答于

你可以这样做:

"1234567890".match(/.{1,2}/g);
// Results in:
["12", "34", "56", "78", "90"]

该方法仍然可以处理大小不是块大小的确切倍数的字符串:

"123456789".match(/.{1,2}/g);
// Results in:
["12", "34", "56", "78", "9"]

通常,对于任何要从中提取最多-n-大小的子串,你会做:

str.match(/.{1,n}/g); // Replace n with the size of the substring

如果字符串可以包含换行符或回车,可以这样做:

str.match(/(.|[\r\n]){1,n}/g); // Replace n with the size of the substring

就性能而言,我尝试了大约10k个字符,在Chrome上花了一点多一点时间。

这也可以用于可重用的函数:

function chunkString(str, length) {
  return str.match(new RegExp('.{1,' + length + '}', 'g'));
}
用户回答回答于
"1234567890".match(/.{1,2}/g);
// Results in:
["12", "34", "56", "78", "90"]

扫码关注云+社区

领取腾讯云代金券