kodie
7/24/2017 - 5:20 PM

A recursive, case-insensitive, keyword matcher.

A recursive, case-insensitive, keyword matcher.

function matches(str, kw) {
  var m = [];
  if (kw.constructor !== Array) { kw = [kw]; }

  for (var i = 0; i < kw.length; i++) {
    var f = str.match(new RegExp(kw[i], 'gi'));
    if (f) { m = m.concat(f); }
  }

  return m;
}

matches('I love Christmas!', ['christ', 'christmas']);
//[ 'Christ', 'Christmas' ]

matches('Poopoo Face', 'poo');
//[ 'Poo', 'poo' ]