我正在尝试突出显示效果良好的搜索字词。问题是我想避免使用1或2个字符或“the”和“and。”
如果我使用
var term = $('#q').val().split(/\s+/);
if(term.length < 3){
$('p').highlight(term);
}
它将输入值作为整个字符串,因此它有超过3个字母。
所以我想我需要使用
if(term:contains('and')){}
但诀窍是我怎么不突出这个?
答案 0 :(得分:1)
您可以替换删除您不想要的字词:
var term = $("#q").val();
var unwantedWords = ['the', 'and', 'this', 'that', 'a', 'an'];
// remove unwanted words
for (var i = 0; i < unwantedWords.length; i++) {
term = term.replace(new RegExp("\\s+" + unwantedWords[i]), "");
}
term = term.split(/\s+/);
$('p').highlight(term);
答案 1 :(得分:1)
您检查了字符串array
的长度,而不是每个string
的长度,这应该有效:
$(document).ready(function() {
var term = $('#q').val().split(/\s+/);
for(var i=0;i<term.length;i++)
{
if(term[i].length > 3)
$('p').highlight(term[i]);
}
});
FIDDLE http://jsfiddle.net/eayan/16/
<强>更新强>: 允许术语设置一组允许的单词,即:
var allowed = ["xp","try"];
将if更改为:
if(term[i].length > 3 || $.inArray(term[i],allowed) >= 0)
对于不区分大小写的搜索,你必须做一些曲调