基于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+css3实现网页背景花瓣随机飘落特效
Aug 17 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
Sep 08 Javascript
jQuery实现折叠、展开的菜单组效果代码
Sep 16 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
Nov 26 Javascript
Jquery遍历select option和添加移除option的实现方法
Aug 26 Javascript
JS路由跳转的简单实现代码
Sep 21 Javascript
shiro授权的实现原理
Sep 21 Javascript
详解使用路由延迟加载 Angular 模块
Oct 12 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
2019年度web前端面试题总结(主要为Vue面试题)
Jan 12 Javascript
html-webpack-plugin修改页面的title的方法
Jun 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
php 运行效率总结(提示程序速度)
2009/11/26 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
优化javascript的执行速度
2010/01/23 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
jQuery 联动日历实现代码
2012/05/31 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jquery拖拽排序简单实现方法(效果增强版)
2016/02/16 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
JavaScript中的ajax功能的概念和示例详解
2016/10/17 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
微信小程序 slot踩坑的解决
2019/04/01 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
Python中使用中文的方法
2011/02/19 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
matplotlib调整子图间距,调整整体空白的方法
2018/08/03 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
Python程序控制语句用法实例分析
2020/01/14 Python
keras:model.compile损失函数的用法
2020/07/01 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
简单租房协议书范本
2014/08/20 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
大学学生个人总结
2015/02/15 职场文书
Win11 KB5015814遇安装失败 影响开始菜单性能解决方法
2022/07/15 数码科技