Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 1x 5x 5x 5x 5x 5x 5x 5x 5x 19x 19x 19x 5x 5x | /** * Options for the {@link count} function * @group String * @category Operations */ export type CountOptions = { /** if true, counts overlapping strings */ overlap?: boolean; }; /** * Compute the number of times a substring occurs within a string * @param input - The string * @param substring - The substring to look for * @param options - see {@link CountOptions} * @returns number of times *substring* occurs within *input* * @group String * @category Operations */ export function count( input: string, substring: string, { overlap = false }: CountOptions = {}, ): number { const step = overlap ? 1 : substring.length; let cnt = 0; let pos = 0; while ((pos = input.indexOf(substring, pos)) >= 0) { cnt++; pos += step; } return cnt; } |