Javascript/jQuery 检查字符串是否包含单词或可选单词之一的出现

标签 javascript jquery arrays string search

我有一个简单的基本问题,但我不知道应该采取哪种方法。

我正在创建一个聊天机器人。因此,每次真正的人类用户输入一条消息时,我想检测用户在消息中输入了哪些单词,然后根据他/她的单词,机器人会专门回复。

 // 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: 用户:您好! 机器人:嘿!!

实例 2: 用户:早安同学 机器人:你好:)

我只想检测用户消息的语义,然后根据用户从我的数组中所说的内容进行回复。

就像当用户说“再见”或“保重”等其中任何一个时,我的机器人应该理解用户想去,然后机器人应该说“保重:)”

我想我需要 Reg ex 来匹配此类事件或字符串包含函数?任何基本的编码示例将不胜感激。

或者,我可以使用一些 AIML(例如 NodeJS 中的 Eliza Bot DB)来代替自己手动响应,这样我就可以将其包含在我的代码中并将用户消息发送给 Eliza Bot然后回复 Eliza Bot 回复的内容。

最佳答案

您尝试过使用indexOf吗?如果您尝试在字符串或数组上搜索特定文本/字符串,它的工作方式类似于 .contains() 。它基本上检查您想要检查的字符串的索引。然后您只需添加某种条件即可使该语句成立。

By adding > -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
}

附注我无法写评论,因为我还没有太多声誉。 :)

关于Javascript/jQuery 检查字符串是否包含单词或可选单词之一的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36101939/

相关文章:

php - 序列化json二维数组,发送两个数组,还是其他?

javascript - 设置 div 以显示数组

Javascript 可以在数组中设置 boolean 值吗?

javascript - 如果输入有值,将其添加到 php 中的变量中?

javascript - ASP.NET MVC 应用程序中的 AJAX 调用不调用 Action 方法

javascript - DevExtreme 使用 Angular Approach - onValueChanged 不起作用

javascript - 在 Angular 中使用 $http 应用curl POST 请求

javascript - 自定义属性选择 2 的触发器更改

javascript - 将数组从 pug (jade) 传递到 jquery 脚本

php - 如何修复此错误: “array to string conversion ” ?