JSFiddle - React, Tailwind, and code Playground
HTML
<b>
<input type="checkbox" value="" />
I need replaced and I NEED more replaced
</b>
JavaScript
var getNonEmptyChildTextNodes = function($element) {
return $element.contents().filter(function() {
return (this.nodeType == 3) && (this.textContent.trim() != '');
});
};
var $textNode = getNonEmptyChildTextNodes($('b')).first(),
text = $textNode[0].textContent;
var search_term = 'I need',
regExp = new RegExp(search_term, 'gi');
var result = regExp.exec(text);
if (result !== null) {
var $elements = $(),
startIndex = 0;
while (result !== null) {
$elements = $elements.add(document.createTextNode(text.slice(startIndex, result.index)));
$elements = $elements.add('<span style="color: #0095DA;" class="textSearchFound">' + result[0] + '</span>');
startIndex = regExp.lastIndex;
result = regExp.exec(text);
}
$elements = $elements.add(document.createTextNode(text.slice(startIndex)));
$textNode.replaceWith($elements);
}