jQuery检测字符串的长度

时间:2014-02-27 21:28:44

标签: jquery

我正在尝试突出显示效果良好的搜索字词。问题是我想避免使用1或2个字符或“the”和“and。”

如果我使用

var term = $('#q').val().split(/\s+/);
     if(term.length < 3){
    $('p').highlight(term);
     }

它将输入值作为整个字符串,因此它有超过3个字母。

所以我想我需要使用

if(term:contains('and')){}

但诀窍是我怎么不突出这个?

demo

2 个答案:

答案 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);

Updated Fiddle

答案 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)

对于不区分大小写的搜索,你必须做一些曲调

Fiddle - allowed words