基于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 相关文章推荐
使用新的消息弹出框blackbirdjs
Oct 16 Javascript
通过身份证号得到出生日期和性别的js代码
Nov 23 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
JavaScript实现快速排序的方法
Jul 31 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
Feb 16 Javascript
Javascript中作用域的详细介绍
Oct 06 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
原生javascript上传图片带进度条【实例分享】
Apr 06 Javascript
vue多页面项目中路由使用history模式的方法
Sep 23 Javascript
vue中添加与删除关键字搜索功能
Oct 12 Javascript
解决vue项目router切换太慢问题
Jul 19 Javascript
JavaScript 生成唯一ID的几种方式
Feb 19 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双向链表定义与用法示例
2018/01/31 PHP
PHP内存溢出优化代码详解
2021/02/26 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
javascript event 事件解析
2011/01/31 Javascript
基于jquery的滚动鼠标放大缩小图片效果
2011/10/27 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
AngularJS快速入门
2015/04/02 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
2016/05/12 Javascript
canvas的神奇用法
2017/02/03 Javascript
浅谈原型对象的常用开发模式
2017/07/22 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
使用JavaScript实现node.js中的path.join方法
2018/08/12 Javascript
vue使用@scroll监听滚动事件时,@scroll无效问题的解决方法详解
2019/10/15 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
对python中的logger模块全面讲解
2018/04/28 Python
python字典改变value值方法总结
2019/06/21 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
英国景点门票网站:attractiontix
2019/08/27 全球购物
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
颇特女士:NET-A-PORTER(直邮中国)
2020/07/11 全球购物
面试后感谢信怎么写
2014/02/01 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
详解Python描述符的工作原理
2021/06/11 Python
如何解决php-fpm启动不了问题
2021/11/17 PHP
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏
vue实现简易音乐播放器
2022/08/14 Vue.js
Mysql的Table doesn't exist问题及解决
2022/12/24 MySQL