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(' '));
});