2011-08-16 12 views
0

を配列に格納し、私は私が配列にこのようなクエリを保存可能性がどのように思っていた:"hello again world"入力でキーワードを取得し、jqueryの

キーワードは、ID =ステータスで、入力フィールドにあるであろう、と""で分割する必要があります。また、私は言葉で一致したこの配列内の特定の単語や文字をエスケープする方法を/配列内の文字はstopwords

答えて

1
//split the words by space 
var keywds = $("#status").val().split(" "); 
$.each(keywds,function(i,val){ 
    //check if its an empty string 
    if($.trim(val) == ""){ 
     keywds.splice(i); 
    }//Check if it's in stopwords 
    else if($.inArray(val,stopwords)>= 0)  
    { 
     keywds.splice(i); 
    } 
}); 

http://jsfiddle.net/pfQnt/

+0

これは優れた答えですが、小さな問題です。クエリーに複数のスペースがある場合、つまり「hello world」:p – re1man

0
// get value and split the string 
var keywords = $('#status').val().split(' '); 
// get all keywords who are not in the array stopwords 
var result = []; 
for (var index in keywords) { 
    if ($.inArray(keywords[index], stopwords) == -1) { 
     result.push(keywords[index]); 
    } 
} 
0

あなたはgetElementById方法であなたの入力の値を取得することができますそして要素のvalueプロパティ:

var keywords = document.getElementById('status').value; 

あなたはちょうどを使用することができることをしたらスペースで分離する方法:

keywords = keywords.split(' '); 

そして、あなたはあなたのキーワードを保持するために、配列が常に待機持つことができます。

var stopwords = []; 

は最後に、あなたはそれぞれの新しいキーワードを確認したいとしています

var addUnique = function (keyword) { 
     var i = stopwords.length; 
     while (i) { 
      i -= 1; 
      if (keyword === stopwords[i]) { 
       return; 
      } 
     } 
     stopwords[stopwords.length] = keyword; 
    }, 
    addMany = function (keywords) { 
     var i = keywords.length; 
     while (i) { 
      i -= 1; 
      addUnique(keywords[i]); 
     } 
    }; 

最終スクリプトは次のようになります:あなたはそれを挿入する前に、

関連する問題