react-text-highlighter
Version:
Simple higher order component for React for text highlighting. Works nicely with React 0.14+ and stateless components
41 lines (35 loc) • 1.36 kB
JavaScript
/*eslint-disable consistent-return */
;
Object.defineProperty(exports, '__esModule', {
value: true
});
var createRegEx = function createRegEx(text, caseSensitive) {
return new RegExp(text.trim(), caseSensitive ? 'g' : 'gi');
};
exports.createRegEx = createRegEx;
var createHTMLString = function createHTMLString(HTMLString, reg, highlightClass) {
return HTMLString.replace(reg, function (str) {
return '<span class="' + highlightClass + '">' + str + '</span>';
});
};
exports.createHTMLString = createHTMLString;
var createHighlight = function createHighlight(highlight, text, options) {
var caseSensitive = options.caseSensitive;
var highlightClass = options.highlightClass;
var toHighlight = highlight.split(' ');
var HTMLString = text;
if (toHighlight.length > 1) {
toHighlight.forEach(function (highlightElement) {
if (highlightElement === '' || highlightElement === '') return;
var reg = createRegEx(highlightElement, caseSensitive);
HTMLString = createHTMLString(HTMLString, reg, highlightClass);
});
return HTMLString;
} else {
if (highlight === '' || highlight === ' ') return text;
var reg = createRegEx(highlight, caseSensitive);
HTMLString = createHTMLString(HTMLString, reg, highlightClass);
return HTMLString;
}
};
exports.createHighlight = createHighlight;