簡體   English   中英

Javascript / jQuery檢查字符串是否包含一個單詞或是否出現可選單詞之一

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM