基于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 相关文章推荐
javascript管中窥豹 形参与实参浅析
Dec 17 Javascript
Jquery实现搜索框提示功能示例代码
Aug 13 Javascript
extjs 分页使用jsp传递数据示例
Jul 29 Javascript
深入分析JQuery和JavaScript的异同
Oct 23 Javascript
js多功能分页组件layPage使用方法详解
May 19 Javascript
javascript学习笔记_浅谈基础语法,类型,变量
Sep 19 Javascript
微信小程序 Template详解及简单实例
Jan 05 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
Dec 16 Javascript
AngularJS基于MVC的复杂操作实例讲解
Dec 31 Javascript
jQuery实现的回车触发按钮事件功能示例
Mar 25 jQuery
vue实现div拖拽互换位置
Jul 29 Javascript
React列表栏及购物车组件使用详解
Jun 28 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,js双版本
2012/09/25 PHP
PHP实现的简单日历类
2014/11/29 PHP
PHP文件操作方法汇总
2015/07/01 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
实例讲解PHP验证邮箱是否合格
2019/01/28 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
javascript折半查找详解
2015/01/26 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
JavaScript中捕获/阻止捕获、冒泡/阻止冒泡方法
2016/12/07 Javascript
简单实现js浮动框
2016/12/13 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
35个Python编程小技巧
2014/04/01 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
django+echart数据动态显示的例子
2019/08/12 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
如何理解Python中的变量
2020/06/01 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android