我正在尝试使用indexOf()
搜索这些关键字('男性','女性'),但它无效。
如果我发现'男性',它会搜索男性和女性的字符串。
这是正确的方法吗?
if ($(this).text().toUpperCase().indexOf(a.toUpperCase()) != -1) {
$(this).show();
}
答案 0 :(得分:1)
使用regex
尝试word boundariesvar regex = new RegExp('\b' + a + '\b', i)
if (regex.test($(this).text())) {
$(this).show();
}
答案 1 :(得分:0)
您可以使用正则表达式仅查找单词(\b
- 单词边界):
var str = 'There is one male and one female in this test';
if (str.match(/\bmale\b/i)) {
console.log('Found male!');
} else {
console.log('No male here!');
}
var str2 = 'There is one female and another female in this test';
if (str2.match(/\bmale\b/i)) {
console.log('Found male!');
} else {
console.log('No male here!');
}
答案 2 :(得分:0)
如果text="female"
然后是,它会包含女性和男性这两个词,因此对男性的搜索不会毫不含糊。也许在整个弦乐中,有一些东西总是围绕着男性或女性的子串。例如text="sex=female
“。如果是这种情况,那么您可以将额外的位添加到搜索模式中。