挑出一个字符串中的单词

时间:2016-06-04 19:22:19

标签: javascript string if-statement include

基本问题在这里!

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

目前它回应:

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

然而,这也使它回应其他词语,如“打扰”“瓶子”等。我们尝试了以下

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

实际上阻止它回应独立单词“bot”并且仍然响应句子,例如“我们都是”(因为'bot'h')

我已经编程好了一段时间,希望对此有所帮助,谢谢!

2 个答案:

答案 0 :(得分: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”等。

答案 1 :(得分:0)

你应该这样做。这也可以在句子的开头或结尾或者后面跟一个逗号,点,感叹号,问号等处理你的密钥(" 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));