基于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 相关文章推荐
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
this[] 指的是什么内容 讨论
Mar 24 Javascript
JavaScript 字符串连接性能优化
Dec 20 Javascript
JavaScript.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 Javascript
js arguments,jcallee caller用法总结
Nov 30 Javascript
不使用jquery实现js打字效果示例分享
Jan 19 Javascript
SeaJS入门教程系列之使用SeaJS(二)
Mar 03 Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 Javascript
在Js页面通过POST传递参数跳转到新页面详解
Aug 25 Javascript
vue2.0实现音乐/视频播放进度条组件
Jun 06 Javascript
微信小程序页面间传值与页面取值操作实例分析
Apr 30 Javascript
JavaScript canvas绘制折线图
Feb 18 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 output buffering缓存及程序缓存深入解析
2013/07/15 PHP
MySql数据库查询结果用表格输出PHP代码示例
2015/03/20 PHP
php实现求相对时间函数
2015/06/15 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
使用递归遍历对象获得value值的实现方法
2016/06/14 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
python多线程扫描端口示例
2014/01/16 Python
Python中使用 Selenium 实现网页截图实例
2014/07/18 Python
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
简单说明Python中的装饰器的用法
2015/04/24 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
python reduce 函数使用详解
2017/12/05 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
使用python存储网页上的图片实例
2018/05/22 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
python中的句柄操作的方法示例
2019/06/20 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
金士达面试非笔试
2012/03/14 面试题
大学生入党思想汇报
2014/01/14 职场文书
保卫科工作岗位职责
2014/03/01 职场文书
国际商务英语专业求职信
2014/07/08 职场文书
普通党员对照检查材料
2014/09/24 职场文书
孔子观后感
2015/06/08 职场文书
企业宣传稿范文
2015/07/23 职场文书
JavaScript异步操作中串行和并行
2021/11/20 Javascript
nginx 配置指令之location使用详解
2022/05/25 Servers