You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript开发的聊天机器人中正确使用.includes匹配用户提问关键词

问题原因

  • 你对.includes()方法的调用逻辑完全错误:document.getElementById.includes('chatLog')是错误写法,.includes()是字符串原型上的方法,只能用于检测字符串是否包含指定子串,不能挂载在document.getElementById上调用
  • 原有判断逻辑if (user in know)是完全匹配用户输入和知识库的键,无法实现包含关键词就匹配的需求

修复方案

调整匹配逻辑:遍历知识库的所有关键词,校验用户输入是否包含对应关键词,匹配到就返回对应回复,否则返回无法理解。你可以参考以下修正后的完整代码:

function talk() {
  var know = {
    "Hey": "Hello!",
    "Help": `You can find help by clicking <a href='https://addressname.com' target="_blank">here</a>`
  };
  // 获取用户输入,统一转小写实现大小写不敏感匹配,不需要该特性可以去掉toLowerCase()
  var user = document.getElementById('userBox').value.toLowerCase();
  var chatLog = document.getElementById('chatLog');
  // 先输出用户输入
  chatLog.innerHTML = user + "<br>";
  // 遍历知识库匹配关键词
  let reply = "I do not understand.";
  for (let keyword in know) {
    // 检测用户输入是否包含当前关键词,关键词也转小写做兼容
    if (user.includes(keyword.toLowerCase())) {
      reply = know[keyword] + "<br>";
      // 匹配到就跳出循环,不需要继续检测
      break;
    }
  }
  // 输出回复
  chatLog.innerHTML += reply;
}

调整说明

  • 把includes()用在用户输入的字符串user上,正确实现子串检测逻辑
  • 新增关键词遍历逻辑,只要用户输入包含任意知识库的关键词就返回对应回复
  • 新增大小写兼容处理,用户输入help、HELP、Can you help都能正常匹配到Help对应的回复

内容的提问来源于stack exchange,提问作者user1300788

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:57:00