Home

Awesome

Utility functions shared by react-highlight-words and react-native-highlight-words.


🎉 Become a sponsor or ☕ Buy me a coffee


API

The primary API for this package is a function exported as findAll. This method searches a string of text for a set of search terms and returns an array of "chunks" that describe the matches found.

Each "chunk" is an object consisting of a pair of indices (chunk.start and chunk.end) and a boolean specfifying whether the chunk is a match (chunk.highlight). For example:

import { findAll } from "highlight-words-core";

const textToHighlight = "This is some text to highlight.";
const searchWords = ["This", "i"];

const chunks = findAll({
  searchWords,
  textToHighlight
});

const highlightedText = chunks
  .map(chunk => {
    const { end, highlight, start } = chunk;
    const text = textToHighlight.substr(start, end - start);
    if (highlight) {
      return `<mark>${text}</mark>`;
    } else {
      return text;
    }
  })
  .join("");

Run this example on Code Sandbox.

findAll

The findAll function accepts several parameters, although only the searchWords array and textToHighlight string are required.

ParameterRequired?TypeDescription
autoEscapebooleanEscape special regular expression characters
caseSensitivebooleanSearch should be case sensitive
findChunksFunctionCustom find function (advanced)
sanitizeFunctionCustom sanitize function (advanced)
searchWords✅Array<string>Array of words to search for
textToHighlight✅stringText to search and highlight

License

MIT License - fork, modify and use however you want.