挑出字符串中的单词
singling out words in a string
这里是基本问题!
我们正在使用 JavaScript 创建一个聊天机器人,它会响应用户在聊天中发布的消息中包含的某些词。
目前它响应:
if(input.includes('bot') {}
然而,这也会使其响应其他词,例如 "bother" "bottle" 等等。我们尝试了以下
if(input.includes('bot ') || input.includes(' bot ') || input.includes(' bot')) {}
这实际上阻止了它对独立单词 "bot" 的响应,并且仍然对诸如 "we both are" 之类的句子做出响应(因为“两个都是”)
我已经有一段时间没有编程了,希望得到一些帮助,谢谢!
您可以使用 .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," 等。
你应该这样做。这也将在句子的开头或结尾处或当它后跟逗号、点、感叹号、问号等时正确检查您的密钥("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));
这里是基本问题!
我们正在使用 JavaScript 创建一个聊天机器人,它会响应用户在聊天中发布的消息中包含的某些词。
目前它响应:
if(input.includes('bot') {}
然而,这也会使其响应其他词,例如 "bother" "bottle" 等等。我们尝试了以下
if(input.includes('bot ') || input.includes(' bot ') || input.includes(' bot')) {}
这实际上阻止了它对独立单词 "bot" 的响应,并且仍然对诸如 "we both are" 之类的句子做出响应(因为“两个都是”)
我已经有一段时间没有编程了,希望得到一些帮助,谢谢!
您可以使用 .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," 等。
你应该这样做。这也将在句子的开头或结尾处或当它后跟逗号、点、感叹号、问号等时正确检查您的密钥("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));