【问题标题】:singling out words in a string挑出字符串中的单词
【发布时间】:2016-06-04 19:22:19
【问题描述】:

这里是基本问题!

我们正在使用 JavaScript 创建一个聊天机器人,它会响应用户在聊天中发布的消息中包含的某些字词。

目前它响应:

if(input.includes('bot') {}

然而,这也使它对诸如“打扰”“瓶子”等其他词做出反应。我们尝试了以下方法

if(input.includes('bot ') || input.includes(' bot ') || input.includes(' bot')) {}

这实际上阻止了它对独立单词“bot”的响应,并且仍然响应诸如“we both are”之类的句子(因为 'bot'h are)

我已经有一段时间没有编写程序了,希望得到一些帮助,谢谢!

【问题讨论】:

标签: javascript string if-statement include


【解决方案1】:

您可以使用.split() 拆分聊天消息,然后查看是否有任何单词是“bot”。

var msg = "Hello bot";

var mArr = msg.split(" ");

function contains(arr,word){
    for (i in arr){
        if (arr[i] === word){
            return true;
        }
    }
    return false;
}

contains(mArr,"bot");//true

这是我早期的方法,您可能还需要过滤独立的“bot”或“bot”等。

【讨论】:

    【解决方案2】:

    你应该这样做。这还将在句子的开头或结尾处或当它后跟逗号、点、感叹号、问号等时正确检查您的密钥(在本例中为“bot”)。

    var msg1 = "Hello bot",
        msg2 = "Hello bottle",
         key = "bot",
           r = new RegExp("\\b"+key+"\\b");
    console.log(r.test(msg1));
    console.log(r.test(msg2));

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 2022-10-06
      • 2012-09-09
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 2020-05-13
      相关资源
      最近更新 更多