pesquisar em uma tabela com várias palavras

Eu tenho um código na busca de várias palavras no jquery. mas eu tenho um problema em procurar a palavra masculino e feminino. quando eu introduzi a palavra macho, o resultado da canvas é feminino e masculino, porque a palavra fêmea contém caracteres “Fe” + “masculinos”, como resolvo este problema. quando eu digitei o macho, ele só deve exibir o macho. e a palavra feminina será exibida apenas quando eu digitei “Male Female” ou “Female”

if (!RegExp.escape) { RegExp.escape = function (s) { return s.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") }; } jQuery(function ($) { ///search this table $(' #search ').click(function () { var searchthis = new RegExp($(' #emp_search ').val().replace(/ /g,"|"), 'i'); $("table").find("tr").slice(1).each(function (index) { // var text = $(this).find("td").text().toLowerCase().trim(); var text = $.trim($(this).text()); $(this).toggle(searchthis.test(text)); }); }); }); 

aqui está minha demonstração http://jsfiddle.net/wind_chime18/ANLgD/10/

Você pode usar \b para detectar limites de palavras:

 var s = "There are two sexes: female and male. males are blue, females are red"; s = s.replace(/\bmale\b/g, "smurf"); console.log(s); // There are two sexes: female and smurf. males are blue, females are red" // both female, males and females don't match \bmale\b 

Sem \b você teria:

 There are two sexes: fesmurf and smurf. smurfs are blue, fesmurfs are red 

Se você mudar esta linha:

 var searchthis = new RegExp($(' #emp_search ').val().replace(/ /g,"|"), 'i'); 

para

 var searchthis = new RegExp("\\b" + $(' #emp_search ').val().replace(/ /g,"|") + "\\b", 'i'); 

funciona, mas isso significa que procurar por Jo também não lhe dará John .