用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 οnlοad="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="点击发送" οnclick="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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是简单的node.js终端聊天室实现: 1. 创建一个文件夹,命名为`terminal-chatroom`,在该文件夹下创建一个`server.js`文件和一个`client.js`文件。 2. 在`server.js`中,使用`net`模块创建一个TCP服务器,监听指定端口并处理连接请求。代码如下: ```javascript const net = require('net'); const server = net.createServer(socket => { // 新客户端连接时触发该事件 console.log(`Client ${socket.remoteAddress}:${socket.remotePort} connected.`); // 监听客户端发送的数据 socket.on('data', data => { console.log(`Received data from client ${socket.remoteAddress}:${socket.remotePort}: ${data.toString()}`); // 广播消息给所有客户端 server.connections.forEach(conn => { if(conn !== socket) { conn.write(`Client ${socket.remoteAddress}:${socket.remotePort}: ${data}`); } }); }); // 监听客户端断开连接事件 socket.on('end', () => { console.log(`Client ${socket.remoteAddress}:${socket.remotePort} disconnected.`); }); }); // 启动服务器,监听指定端口 server.listen(8888, () => { console.log('Server started, listening on port 8888.'); }); ``` 3. 在`client.js`中,使用`net`模块创建一个TCP客户端连接到服务器。代码如下: ```javascript const net = require('net'); const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); // 连接到服务器 const client = net.connect({port: 8888}, () => { console.log('Connected to server.'); // 给服务器发送消息 rl.on('line', input => { client.write(input); }); }); // 监听服务器发送的数据 client.on('data', data => { console.log(`Received data from server: ${data}`); }); // 监听连接断开事件 client.on('end', () => { console.log('Disconnected from server.'); }); ``` 4. 打开终端,进入`terminal-chatroom`文件夹,先启动`server.js`,再启动多个`client.js`,即可在不同的终端窗口中进行聊天
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值