获取一个非常大的字符串中子字符串的所有出现次数

13 浏览
0 Comments

获取一个非常大的字符串中子字符串的所有出现次数

我需要像indexOf一样找到所有索引,如果有indexOf和lastIndexOf,那么应该有一个函数来获取所有出现的索引吧?但我找不到。

请注意,字符串非常大,约为1MB大小,所以我需要最快的解决方案。

澄清一下,我需要获取子字符串在字符串中出现的所有位置。

例如:

var str = "foo bar foo bar"; //真实字符串大小为1MB

var indexes = str.indexOfAll('foo'); //我需要的函数

console.log(indexes); //应该打印[0,8];

脑海中浮现出一个想法,就是在一个循环中使用indexOf,找到第一个单词,将字符串切割为索引处的部分,然后再次使用indexOf,如此循环,直到找不到为止。我不确定性能如何(切割和重新创建大字符串)。

0