基于jQuery实现简单人工智能聊天室


Posted in Javascript onFebruary 10, 2017

花了俩小时折腾出来的,jQuery人工智能聊天室长这样:

主要功能:

1.当然是聊天啦~点击飞机按钮或者回车可以发送消息到面板。
2.输入特定的内容,系统会给你相应的回复(这里我只设置了Hello,How are you和询问时间的自动回复)。
3.点击叉叉可以清除面板上的所有聊天记录。
4.问时间的时候,根据现在的时间,会给你相应的不同的回复,比如现在是22-23点,系统会回复你“good night”。
5.随着聊天的进行,聊天面板右侧的滚动条会一直维持在最底部。

HTML:

<div class="chat-box"> 
</div> 
<form class="form-inline chat-form"> 
 <input type="text" class="form-control chat-message" placeholder="Say Something"> 
 <button type="button" class="btn btn-primary chat-send" title="Send Message"> 
 <i class="fa fa-paper-plane" aria-hidden="true"> 
 </i> 
 </button> 
 <button type="reset" class="btn btn-success chat-reset" title="Reset Message"> 
 <i class="fa fa-refresh" aria-hidden="true"> 
 </i> 
 </button> 
 <button type="button" class="btn btn-danger chat-clear" title="Clear the Chat Box"> 
 <i class="fa fa-times" aria-hidden="true"> 
 </i> 
 </button> 
</form> 
<hr> 
<footer> 
 Designed By 
 <a href="http://blog.csdn.net/alenhhy" rel="external nofollow" target="_blank"> 
 Alen Hu 
 </a> 
</footer>

 *使用了Bootstrap3框架。

JQuery:

$(document).ready(function() { 
 
 //send the message by click 
 $(".chat-send").click(sendMsg); 
 
 //press enter to send 
 $("form").keypress(function(event) { 
  if (event.keyCode === 13) { 
   event.preventDefault(); 
   sendMsg(); 
  } 
 }); 
 
 //clear the chat box 
 $(".chat-clear").click(clearChatBox); 
}); 
 
//send message to chat box 
function sendMsg() { 
 var msg = $(".chat-message"); 
 var msgVal = msg.val(); 
 var chatBox = $(".chat-box"); 
 if (msgVal) { 
  var msgAppend = "<p><span id='you'>You: </span>" + msgVal + "</p><hr class='you-hr'>"; 
  chatBox.append(msgAppend); 
 } else {} 
 
 //dialog reply 
 dialog(msgVal); 
 
 //empty input 
 msg.val(""); 
 
 //keep the scroll in bottom 
 chatBox.scrollTop(chatBox[0].scrollHeight); 
} 
 
//set up the AI dialog 
function dialog(msg){ 
 var replyArr = ["Hi, how's it going :)","I'm good, thx, U? :)"]; 
 msg = msg.toLowerCase(); 
 var time = new Date(); 
 var hour = time.getHours(); 
 var minute = time.getMinutes(); 
 var currentTime = plusZero(hour) + ":" + plusZero(minute); 
 
 var chatBox = $(".chat-box"); 
 
 if(msg.indexOf("hello") != -1){ 
  chatBox.append("<p><span id='ai'>AI: </span>" + replyArr[0] + "</p><hr class='ai-hr'>"); 
 } 
 else if(msg.indexOf("how are you") != -1 || msg.indexOf("how are u") != -1){ 
  chatBox.append("<p><span id='ai'>AI: </span>" + replyArr[1] + "</p><hr class='ai-hr'>"); 
 } 
 else if(msg.indexOf("time") != -1){ 
  chatBox.append("<p><span id='ai'>AI: </span>Current Time: " + currentTime + ". " + timeGreeting(hour) + "~ :)</p><hr class='ai-hr'>"); 
 } 
 else {} 
} 
 
//add 0 if time number is <10 
function plusZero(x){ 
 if(x < 10){ 
  x = "0" + x; 
 } 
 else { 
  x = x; 
 } 
 return x; 
} 
 
//greeting by hour 
function timeGreeting(h){ 
 var greeting = ["U need to sleep","Good morning","Lunch time now","Feel asleep? Have some coffee","Free time~Yeah","Good night"]; 
 
 if(h>=0&&h<=6){ 
  return greeting[0]; 
 } 
 else if(h>=7&&h<=10){ 
  return greeting[1]; 
 } 
 else if(h>=11&&h<=13){ 
  return greeting[2]; 
 } 
 else if(h>=14&&h<=18){ 
  return greeting[3]; 
 } 
 else if(h>=19&&h<=21){ 
  return greeting[4]; 
 } 
 else if(h>=22&&h<=23){ 
  return greeting[5]; 
 } 
 else { 
  return ""; 
 } 
} 
 
//clear the chat box 
function clearChatBox() { 
 $(".chat-box").html(""); 
}

DEMO在这儿,欢迎FORK:AI Chat Box。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 源码分析笔记(7) Queue
Jun 19 Javascript
表单切换,用回车键替换Tab健(不支持IE)
Jul 20 Javascript
一个实用的图片切换支持点击切换和自动轮播
Sep 09 Javascript
Javascript的闭包详解
Dec 26 Javascript
js获取微信版本号的方法
May 12 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
May 11 Javascript
js中url对象化管理分析
Dec 29 Javascript
vue-cli3脚手架的配置及使用教程
Aug 28 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
Oct 31 Javascript
简单实现vue中的依赖收集与响应的方法
Feb 18 Javascript
使用JavaScript实现贪吃蛇游戏
Sep 29 Javascript
Vue中使用JsonView来展示Json树的实例代码
Nov 16 Javascript
基于jQuery实现咖啡订单管理简单应用
Feb 10 #Javascript
基于jQuery实现弹幕APP
Feb 10 #Javascript
BOM之navigator对象和用户代理检测
Feb 10 #Javascript
基于JQuery及AJAX实现名人名言随机生成器
Feb 10 #Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
Feb 10 #Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
Feb 10 #Javascript
javascript自执行函数
Feb 10 #Javascript
You might like
php垃圾代码优化操作代码
2010/08/05 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
PDO::prepare讲解
2019/01/29 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
jQuery表单域选择器用法分析
2015/02/10 Javascript
JS中Location使用详解
2015/05/12 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
微信小程序实现星星评价效果
2018/11/02 Javascript
js脚本中执行java后台代码方法解析
2019/10/11 Javascript
[01:02:32]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第二场 2月26日
2021/03/11 DOTA
Python命名空间详解
2014/08/18 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
pandas对指定列进行填充的方法
2018/04/11 Python
Python定时任务sched模块用法示例
2018/07/16 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
Python中的集合介绍
2019/01/28 Python
python实现字典嵌套列表取值
2019/12/16 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
python实现打砖块游戏
2020/02/25 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
UDP协议功能
2013/01/06 面试题
领导的自我鉴定
2013/12/28 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
环卫个人总结
2015/03/03 职场文书
2015年企业团支部工作总结
2015/05/21 职场文书
信息技术教研组工作总结
2015/08/13 职场文书
HAM-2000摩机图
2021/04/22 无线电
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL