The code the presence of a single word in a sentence and it’s working fine.
var str ="My best food is beans and plantain. Yam is also good but I prefer yam porrage" if(str.match(/(^|W)food($|W)/)) { alert('Word Match'); //alert(' The matched word is' +matched_word); }else { alert('Word not found'); }
Here is my issue: I need to check presence of multiple words in a sentence (eg: food,beans,plantains etc) and then also alert the matched word.
something like //alert(' The matched word is' +matched_word);
I guess I have to passed the searched words in an array as per below:
var words_checked = ["food", "beans", "plantain"];
Advertisement
Answer
Here’s a way to solve this. Simply loop through the list of words to check, build the regex as you go and check to see if there is a match. You can read up on how to build Regexp objects here
var str ="My best food is beans and plantain. Yam is also good but I prefer yam porrage" var words = [ "food", "beans", "plantain", "potato" ] for (let word of words) { let regex = new RegExp(`(^|\W)${word}($|\W)`) if (str.match(regex)) { console.log(`The matched word is ${word}`); } else { console.log('Word not found'); } }