基于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 相关文章推荐
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
Feb 07 Javascript
jquery操作select option 的代码小结
Jun 21 Javascript
完美解决AJAX跨域问题
Nov 01 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
jquery滚动特效集锦
Jun 03 Javascript
AngularJS中$interval的用法详解
Feb 02 Javascript
jQuery插件uploadify实现ajax效果的图片上传
Jun 18 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
Vue插件从封装到发布的完整步骤记录
Feb 28 Javascript
Node.js 多进程处理CPU密集任务的实现
May 26 Javascript
js实现翻牌小游戏
Jul 31 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删除HTMl标签的三种解决方法
2013/06/30 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
2015/06/10 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
IE6-8中Date不支持toISOString的修复方法
2014/05/04 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
2019/06/10 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
2015/04/28 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
利用scrapy将爬到的数据保存到mysql(防止重复)
2018/03/31 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
中国制造网:Made-in-China.com
2019/10/25 全球购物
意大利网上书店:LaFeltrinelli
2020/06/12 全球购物
文明餐桌活动方案
2014/02/11 职场文书
干部现实表现材料
2014/02/13 职场文书
2014幼儿园大班工作总结
2014/11/10 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
孔庙导游词
2015/02/04 职场文书
教师创先争优承诺书
2015/04/27 职场文书