基本问题在这里!
我们正在使用JavaScript创建一个聊天机器人,它响应用户在聊天中发布的消息中包含的某些单词。
目前它回应:
if(input.includes('bot') {}
然而,这也使它回应其他词语,如“打扰”“瓶子”等。我们尝试了以下
if(input.includes('bot ') || input.includes(' bot ') || input.includes(' bot')) {}
实际上阻止它回应独立单词“bot”并且仍然响应句子,例如“我们都是”(因为'bot'h')
我已经编程好了一段时间,希望对此有所帮助,谢谢!
答案 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));