js编写简单的聊天室功能

这个聊天室写的特别简易,比较适合刚开始学习js的同学借鉴,当然,写的不好,也希望诸位大神可以进行批评改正。

聊天室要求:

1.不能发空消息
2.敏感字***显示
3.图片替换 开心,尴尬
4.显示聊天内容和时间
5.每发一条信息,随机显示名称,先把一些名称定义到array里面

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style type="text/css">
   *{
    box-sizing: border-box;
   }
   .left{
    float: left;
    width: 20%;
    height: 650px;
    color: red;
    border: 1px solid red;
    border-right: 20px solid cornflowerblue;
   }
   .center{
    position: relative;
    float: left;
    width: 60%;
    height: 650px;
    border: 1px solid darkcyan;
   }
   .chatList{
    width: 100%;
    height: 500px;
    overflow-y: scroll;
   }
   .bottom{
    position: absolute;
    width: 100%;
    height: 150px;
    left: 0;
    bottom: 0;
    background: skyblue;
   }
   .bottom textarea{
    width: 70%;
    height: 100%;
    font-size: 18px;;
    vertical-align: middle;
    border: 1px solid red;
    background: blanchedalmond;
   }
   .bottom input{
    width: 80px;
    height: 40px;
    margin-left: 30px;
   }
   .right{
    float: right;
    color: #000000;
    border-right: 0;
    border-left: 20px solid cornflowerblue;
   }
  </style>
 </head>
 <body onload="loadTime()">
  <div class="left" id="left"> 

  </div>
  <div class="center" id="center">
   <div class="chatList" id="chatList"> 

   </div>
   <div class="bottom">
    <textarea id="content" name="content" ></textarea>
    <input type="button" name="send" id="send" value="点击发送" onclick="sendMessage()" />
   </div>
  </div>
  <div class="left right">
   <p>1.不能发空消息</p>
   <p>2.敏感字***显示</p>
   <p>3.图片替换 开心,尴尬</p>
   <p>4.显示聊天内容和时间</p>
   <p>5.每发一条信息,随机显示名称,先把一些名称定义到array里面</p>
  </div> 

 </body>
 <script type="text/javascript">
//  document.getElementById("chatList").scrollHeight;
 /*
   添加敏感字替换成**---8.10
  * */
  function loadTime(){
   var time = new Date(); 

   var hours = (time.getHours()).toString();
   if(hours.length < 2){
    hours = "0" + hours;
   }
   var minutes = (time.getMinutes()).toString();
   if(minutes.length < 2){
    minutes = "0" + minutes;
   }
   var seconds = (time.getSeconds()).toString();
   if(seconds.length < 2){
    seconds = "0" + seconds;
   }
   var timeReturn = hours + ":" + minutes + ":" + seconds;
   document.getElementById("left").innerHTML = timeReturn;
   return timeReturn;
  }
  setInterval("loadTime()",1000);
  var chatContents = "";
  var count = 0;
  function sendMessage(){
   //通过调用randomName()函数来得到一个随机的名字
   var name = randomName();
   //通过调用randomColor()函数来得到一个随机的颜色
   var colorR = randomColor();
   //得到textarea中的内容
   var content = document.getElementById("content").value;
   //判断输入内容是否为空
   if (content == "") {
    alert("输入内容不能为空!!!");
    return;
   }
   //通过正则表达式来获取要替换的字符串
   var regExp = /藏独|台独|傻逼|你大爷/g;
   var regExp1 = /开心/g;
   var regExp2 = /尴尬/g;
//   var imgReplace = content.replace(regExp,"高兴");
   //获取开心图片路径
   var path1 = '<img src="img/chui.png"/>';
   //获取尴尬图片的路径
   var path2 = '<img src="img/mouse.png"/>';
   //敏感字替换;
   content = content.replace(regExp,"***");
   //将开心替换成开心图片的字符串;
//   txtReplace(content);
   var imgReplace = content.replace(regExp1,path1);
//   alert(imgReplace);
   //将尴尬替换成尴尬图片的字符串;
   imgReplace = imgReplace.replace(regExp2,path2);
//   alert(imgReplace);
   var chatContent = "<span>"+ name + ":" + "</span>" + " " + imgReplace;
//   字符串拼接聊天记录
   chatContents =chatContents + chatContent + " " + loadTime() +"<br/>";
   document.getElementById("chatList").innerHTML = chatContents;
   //点击发送后,textarea中的内容设为空
   document.getElementById("content").value = "";
   var txtColor = document.getElementsByTagName("span")[count];
   count++;
   //设置span的随机颜色
   txtColor.style.color = colorR;
  }
  function randomName(){
   var i = parseInt(Math.random() * (6 - 0 + 1) + 0);
   var arrName = new Array("果果","六六","格格","明明","小花","兰兰","花花");
   return arrName[i];
  }
  function randomColor(){
   var r = parseInt(Math.random() * (255 - 0 + 1) + 0).toString(16);
   if(r.length < 2){
    r = "0" + r;
   }
   var g = parseInt(Math.random() * (255 - 0 + 1) + 0).toString(16);
   if(g.length < 2){
    g = "0" + g;
   }
   var b = parseInt(Math.random() * (255 - 0 + 1) + 0).toString(16);
   if(b.length < 2){
    b = "0" + b;
   }
   return "#" + r + g + b;
  } 

 </script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Node.js制作简单聊天室

    看了TCP的有关知识,写了个基于NET的聊天室. var net = require('net'); var count = 0, users = {}; var server = net.createServer(function (conn) { console.log('连接到'); conn.write( "\r\n > welcome to node-chat!" + "\r\n > " + count + " other peopl

  • 使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室

    一,利用Node搭建静态服务器 这个是这个项目的底层支撑部分.用来支持静态资源文件像html, css, gif, jpg, png, javascript, json, plain text等等静态资源的访问.这里面是有一个mime类型的文件映射. mime.js /** * mime类型的 map * @ author Cheng Liufeng * @ date 2014/8/30 * 当请求静态服务器文件的类型 html, css, gif, jpg, png, javascript,

  • JavaScript仿聊天室聊天记录

    本文实例为大家分享了js仿聊天室聊天记录的具体代码,供大家参考,具体内容如下 参考样式(css自定义聊天窗口样式):http://xiazai.jb51.net/201612/yuanma/css3chatstyle(jb51.net).rar 功能描述: 1. 用户在微信公众号里发送内容,参与活动 2. 后台提供类似聊天室的窗口显示用户实时发布的内容 界面截图: 代码: body { padding: 0; margin: 0; background: -moz-linear-gradient

  • Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室

    为更好的运用这两天学到的Ajax的相关的知识,就做了个简单的在线网络聊天室. 思路 实现聊天室,基本上就是通过Ajax来传递数据,让PHP来实现对数据的差入和查找,再交给前端JavaScript实现页面的更新,达到即时聊天的功能. 消息显示区 消息显示区就是一个DIV块,我们会借助Ajax获取到服务器端信息之后,使用JavaScript来更新页面. <h3>消息显示区</h3> <div id="up"> </div> <hr /&

  • 玩转NODE.JS(四)-搭建简单的聊天室的代码

    Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一些个教程使用它来搭建一个超级简单的聊天室. 初始化项目 在电脑里新建一个文件夹,叫做"chatroom",然后使用npm进行初始化: $ npm init 然后根据提示以及相关信息一步一步输入,当然也可以一路回车下去,之后会在项目里生成一个package.json文件,里面的信息如下: $ cat package.json { &q

  • 基于javascript、ajax、memcache和PHP实现的简易在线聊天室

    在线聊天室(online chatrooms)是一个共多人进行沟通交流的网络平台,随着越来越多的新技术的发明和成熟运用,在线聊天室也出现使用各种不同技术的, 这篇文章我想简单总结一下. 首先说一下前台技术,最新的当然是基于HTML5的websocket,它实现了浏览器与服务器全双工通信(full-duplex).WebSocket通信协议于2011年被IETF定为标准 RFC 6455,WebSocketAPI被W3C定为标准.在WebSocket API中,浏览器和服务器只需要做一个握手的动作

  • AngularJS+Node.js实现在线聊天室

    不得不说,上手AngularJS比我想象得难多了,把官网提供的PhoneCat例子看完,又跑到慕课网把大漠穷秋的AngularJS实战系列看了一遍,对于基本的使用依然有很多说不清道不明的疑惑,于是决定通过做一个在线聊天室帮助理解.DEMO可以戳→chat room,代码可以戳→ChatRoom-AngularJS. 清晰图可以戳 http://files.jb51.net/file_images/article/201508/201508281040051.gif 功能 着手开发之前,首先明确一

  • nodejs实现的一个简单聊天室功能分享

    今天我来实现一个简单的聊天室,后台用nodejs, 客户端与服务端通信用socket.io,这是一个比较成熟的websocket框架. 初始工作 1.安装express, 用这个来托管socket.io,以及静态页面,命令npm install express --save,--save可以使包添加到package.json文件里. 2.安装socket.io,命令npm install socket.io --save. 编写服务端代码 首先我们通过express来托管网站,并附加到socke

  • Node.js中使用socket创建私聊和公聊聊天室

    先给大家展示效果图: 在上篇文章给大家介绍使用Angular和Nodejs.socket.io搭建聊天室及多人聊天室,本文继续介绍Node.js中使用socket创建私聊和公聊聊天室,具体详情请看下文吧. nodejs的应用中,关于socket应该是比较出彩的了,socket.io在github上有几万人的star,它的成功应该是不输于express的,为了方便了解整个socket.io的使用. 例子请点击http://chat.lovewebgames.com/ 源码下载https://git

  • Node.js利用Net模块实现多人命令行聊天室的方法

    这篇文章介绍的是Node.js利用Net模块实现命令行式的多人聊天室,下面话不多说,来看看详细的介绍吧. 1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类: Server和Socket类.工厂方法. Server类如下图所示: net.Server类可以用来创建一个TCP或本地服务器,继承了EventEmitter. Socket类如下: net.Socket类一般用创建一个socket客户端或者是ne

随机推荐