在包含多个单词的表中搜索
search in a table with multiple words
我有一个在jquery中搜索多个单词的代码。但是我在搜索单词male和female时遇到了一个问题。当我输入单词"男性"时,显示结果是女性和男性,因为单词"女性"包含"Fe"+"男性"字符,我将如何解决这个问题。当我键入雄性时,它应该只显示雄性。只有当我输入"男性-女性"或"女性"时,女性单词才会显示
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));
});
});
});
这是我的演示http://jsfiddle.net/wind_chime18/ANLgD/10/
您可以使用'b
来检测单词边界:
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
如果没有'b
,您将获得:
There are two sexes: fesmurf and smurf. smurfs are blue, fesmurfs are red
如果您更改此行:
var searchthis = new RegExp($(' #emp_search ').val().replace(/ /g,"|"), 'i');
至
var searchthis = new RegExp("''b" + $(' #emp_search ').val().replace(/ /g,"|") + "''b", 'i');
它有效,但这意味着搜索Jo
也不会得到John
。
相关文章:
- 在正则表达式中搜索单词
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 在自动刷新网页时搜索单词
- 选择下拉菜单:实现非精确搜索,每个单词都将被不可重复地搜索
- Javascript-在一个数组中搜索整个单词,并创建一个符合条件的新数组
- 如何在搜索框中获取从特定字母开头的单词
- JQuery在链接的静态页面中搜索,突出显示找到的单词,而不破坏列表
- 谷歌建议搜索多个单词
- Jquery搜索表可以'找不到带括号的单词
- 如何使用javascript通过CKEditor中的编码来搜索单词
- 在单词数组中搜索单词
- 使用正则表达式搜索单词
- 在javascript中搜索单词中的字母
- 使用jquery搜索单词
- 用于在Unicode字符串中搜索单词边界的Javascript正则表达式
- 在文本错误中搜索单词
- 使用Jquery在TABLE中部分搜索单词
- 如何使仅显示包含搜索单词的框 - jQuery
- 使用backboneJS集合以任意顺序搜索单词
- 使用JS以任意顺序搜索单词