JSFiddle - React, Tailwind, and code Playground
by joopmicroop
HTML
<form role="form">
<input type="text" id="search" placeholder="Search...."/>
</form>
JavaScript
// RegExp constructor flags: new RegExp('elements','flags')
// i Ignore case (both lowercase and uppercase letters will match)
// g Global (allow multiple matches)
// m Multiline (^ and $ will match the beginning/end of lines)
$('#search').keyup(function(){
var searchFieldValue = $('#search').val();
var searchedWords = searchFieldValue.split(' ');
var contains = []; var notContains = [];
for(var i in searchedWords){
var re = new RegExp(searchedWords[i], "gim");
var str = "The sky is awake so I am awake so we have to play";
str.search(re) == -1 ? notContains.push(searchedWords[i]): contains.push(searchedWords[i]);
}
console.clear();
var resStr = str;
if( !notContains.join(' ') )
for(var i in contains) resStr = resStr.replace(contains[i],'');
console.log('Words not typed yet: '+resStr);
console.log('is everything typed: '+!resStr.trim().length);
console.log('is everything typed an nothing more: '+(!resStr.trim().length && contains.length >= str.split(' ').length));
console.log("Each and all words are "+(!notContains.join(' ')?'':'not all ')+"in the str.");
console.log("Does contain: ",contains.join(' ') );
console.log("Does not Contain: "+notContains.join(' '));
});