2015-06-03 65 views
0

我已經設置了一個從實時聊天客戶端檢索消息的方法。我想把這些消息(很多文本)和這些消息中是否包含關鍵短語。如果它們包含一個關鍵短語,我會簡單地將1添加到一個計數變量。在jquery中尋找關鍵短語的簡單方法?

目前,我做這樣的(「好」,「是」,「好」是關鍵短語)

for (var i = 0; i < data.msgs.length; i++) 
{ 
    str = data.msgs[i].msg.toLowerCase(); 
    if (str.search("good") != -1 || str.search("yes") != -1 || str.search("nice") != -1) 
    { 
     count = count + 1; 
    } 
} 

這種方法的工作原理,但它是不是很漂亮。我計劃添加大約100個不同的關鍵短語,很容易看出這將變得愚蠢。此外,添加新的關鍵短語令人討厭和麻煩。

我想知道是否有更好的方法來製作某種關鍵短語的數據庫,我可以從中搜索匹配。最好能容易地添加和刪除短語。

謝謝。

回答

0
var keys = ['good', 'yes', 'nice']; 
for (var i = 0; i < data.msgs.length; i++) 
{ 
    str = data.msgs[i].msg.toLowerCase(); 
    for(var j=0; j < keys.length; j++){ 
     if(str.indexOf(keys[j]) !== -1){ 
      count++; 
      //could also return here if you want to break the function after a find 
      } 
    } 
} 

您還可以從JSON文件加載您的「密鑰」並解析它。

+0

這幾乎可行。當我使用str.search(「good」)時,它會搜索整個消息中的文字「good」。所以如果消息是「我很好」,它會返回「真實」(真正的意思不是負面的)。 這樣做,它只會返回true,如果整個消息是短語。所以只有「好」纔會回報真實。 –

+0

我意識到這不是你想要的,讓我編輯 – Eric

+0

抱歉不小心發過早 –