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

2023-12-22

我想将一个非常大的字符串(比方说,10,000 个字符)拆分为 N 大小的块。

就性能而言,执行此操作的最佳方法是什么?

例如:"1234567890"除以 2 将变为["12", "34", "56", "78", "90"].

像这样的事情可以使用String.prototype.match https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/match如果是这样,就性能而言,这是否是最好的方法?


你可以这样做:

"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 上花了一秒多一点的时间。 YMMV。

这也可以用在可重用函数中:

function chunkString(str, length) {
  return str.match(new RegExp('.{1,' + length + '}', 'g'));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JavaScript 中将大字符串拆分为 n 大小的块 的相关文章

随机推荐