jQuery检测字符串的长度

jQuery检测字符串的长度,jquery,Jquery,我试图强调一个搜索到的术语,它工作得很好。问题是我希望避免使用1或2个字符的单词或“The”和“and” 如果我使用 var term = $('#q').val().split(/\s+/); if(term.length < 3){ $('p').highlight(term); } 但诀窍是我将如何取消强调这一点 您可以替换或删除不需要的单词: var term = $("#q").val(); var unwantedWords = ['the',

我试图强调一个搜索到的术语,它工作得很好。问题是我希望避免使用1或2个字符的单词或“The”和“and”

如果我使用

var term = $('#q').val().split(/\s+/);
     if(term.length < 3){
    $('p').highlight(term);
     }
但诀窍是我将如何取消强调这一点


您可以替换或删除不需要的单词:

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);
var term=$(“#q”).val();
var unwantedWords=['the','and','this','that','a','an'];
//删除不需要的单词
for(变量i=0;i

您检查了字符串
数组的长度,而不是每个
字符串的实际长度,这应该有效:

 $(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]);      
    }          
 });
将if更改为:

if(term[i].length > 3 || $.inArray(term[i],allowed) >= 0)
对于不区分大小写的搜索,你需要做一些调整


higlihgt功能是从excelent中提取的,非常感谢。我希望我能给出两个好答案!还有一个问题。我该怎么做呢。现在我隐藏小于3个字母的单词,但如果我需要一些只有2个字母的单词?@SamotnyPocitac查看我的更新解决方案。您可以创建一个不需要的单词数组,并删除每个单词。这使得它更具可扩展性;如果发现不需要的其他单词,可以将它们添加到数组中。这也意味着它不取决于单词的长度,而是取决于单词本身(例如冠词形容词等);这似乎不起作用,你甚至可以在你的演示中看到这一点highlighted@SamotnyPocitac出现语法错误。JSHint-ftw。更新有一种方法可以排除一些我需要突出显示但字母较少的单词。ie XP?我发现了一些问题,因为“by”也被突出显示,而不应该是因为小于3个字母,inArray的结果必须大于等于,所以表示它被找到了
var allowed = ["xp","try"];   
if(term[i].length > 3 || $.inArray(term[i],allowed) >= 0)