Partition strings based on character indices.
yarn add strind
Required arguments are the string and an array of tuples that denote the start and end parse indices.
import strind from "strind";
const result = strind("abcd", [
[1, 1],
[2, 6],
]);
console.log(result);
/**
* {
matched: ['b', 'cd'],
unmatched: [
{
chars: 'a',
index: 0
}
]
}
*
*/
The module accepts an optional callback as the third argument.
The function is called with the substring chars
and boolean matches
if the substring matches the array indices.
import strind from "strind";
// signature
// strind(string, Array<Tuple>, [function])
const result = strind(
"abcd",
[
[1, 1],
[2, 6],
],
({ chars, matches }) => ({
isHighlighted: matches,
text: chars,
})
);
console.log(result);
/**
* [
{ isHighlighted: false, text: 'a' },
{ isHighlighted: true, text: 'b' },
{ isHighlighted: true, text: 'cd' }
]
*
*/