Searching

import {
  contains, containsAll, containsAny, count, between, betweenAll,
} from '@ppabari/strio/str';

contains

contains(str: string, substring: string, caseSensitive?: boolean): boolean

caseSensitive defaults to true.

contains('Hello World', 'World');        // โ†’ true
contains('Hello World', 'world');        // โ†’ false
contains('Hello World', 'world', false); // โ†’ true

containsAll

containsAll(str: string, substrings: string[], caseSensitive?: boolean): boolean
containsAll('the quick fox', ['the', 'fox']); // โ†’ true
containsAll('the quick fox', ['the', 'dog']); // โ†’ false

containsAny

containsAny(str: string, substrings: string[], caseSensitive?: boolean): boolean
containsAny('the quick fox', ['cat', 'fox']); // โ†’ true
containsAny('the quick fox', ['cat', 'dog']); // โ†’ false

count

count(str: string, substring: string, overlapping?: boolean): number

Count occurrences. Pass overlapping = true to count overlapping matches.

count('banana', 'a');      // โ†’ 3
count('aaaa', 'aa');       // โ†’ 2
count('aaaa', 'aa', true); // โ†’ 3

between

between(str: string, start: string, end: string): string

Extract the first substring between start and end. Returns '' if not found.

between('[a][b]', '[', ']');     // โ†’ 'a'
between('key=value;', '=', ';'); // โ†’ 'value'

betweenAll

betweenAll(str: string, start: string, end: string): string[]

Extract every non-overlapping substring between the delimiters.

betweenAll('[a][b][c]', '[', ']'); // โ†’ ['a', 'b', 'c']