[英]Check if the string contains an entire word from an array of words (jquery, javascript)
[英]Javascript/jQuery check if string contains a word or occurrences of one of the optional words
我有一個簡單的基本問題,我被困在應該采取哪種方法上。
我正在創建一個聊天機器人。 因此,每當一個真正的人類用戶鍵入一條消息時,我都希望檢測用戶在消息中鍵入了哪些單詞,然后根據他/她的單詞,該機器人將特別回復。
// A string containing user message
var UserMsg = data.message;
////Means if ANY ONE of this words are contained in user message then I will tell the bot to respond to the greeting message.
if UserMsg.contains("Hi", "Hello", "Hey", "Morning");
var welcomeArray = ['Hey!!', 'Hi', 'Hello :)'];
//gets a random welcome msg to respond
var welcomeMsg = welcomeArray[Math.floor(Math.random() * welcomeArray.length)];
if(data.message=='Hi') //if user says Hi or hello hey etc
socket.emit('message', 'welcomeMsg'); //Bot will respond by one of the random greetings messages
例如,我的代碼輸出: 實例1:用戶:嗨! Bot:嘿!
實例2:用戶:Morning Fellow Bot:您好:)
我只想檢測用戶消息的語義,然后根據用戶從我的數組中說出的內容進行回復。
就像用戶說“再見”或“保重”等其中任何一種一樣,我的機器人應該理解用戶想要離開,然后機器人應該說“保重:)”
我在想我需要Reg ex來匹配這種情況或String contains函數嗎? 任何基本的編碼示例將不勝感激。
或者,或者,我可以使用一些AIML(例如NodeJS中的Eliza Bot DB)來代替自己做出手動響應,因此我可以將其包含在代碼中,然后將用戶消息發送給Eliza Bot,然后回信Eliza Bot的答復。
您是否嘗試過使用indexOf? 如果您要搜索字符串或數組上的特定文本/字符串,它的工作方式類似於.contains()。 它基本上檢查您要檢查的字符串的索引。 然后,您只需要添加某種條件即可使該語句為真。
通過添加> -1
從邏輯上講,如果找不到字符串,它將返回false語句;如果找到字符串,則將返回true,因為它將返回其索引。 索引從0開始。
嘗試檢查一下
var data = {
message1 : 'Hi there', message2 : 'Hello there', message3 : 'Hey bot',message4 : 'Good Morning'
}
var userMsg = data;
if (userMsg.message1.indexOf('Hi') > -1) {
//Do something
}
if (userMsg.message2.indexOf('Hello') > -1) {
//Do something
}
if (userMsg.message3.indexOf('Hey') > -1) {
//Do something
}
if (userMsg.message4.indexOf('Morning') > -1) {
//Do something
}
附言:因為我沒有很高的聲譽,所以我無法發表評論。 :)
您現在可以使用正則表達式。 似乎沒有那么復雜。 例如,您可以使用以下代碼:
//Use your array here with a regex with your own logic.
var myRegExp = /Hello/;
var userText = "Hello my friend";
if(myRegExp.test(userText))
{
console.log("Found a Hello!")
}
這是一個基本示例,您可以使用自己的邏輯進行擴展,也可以編寫要匹配的單詞詞典。 希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.