2015-06-03 61 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

抱歉不小心发过早 –