背景介绍
随着用户注册行为的增加,系统需要支持用户验证登录状态,以维护用户账户的安全性和便利性。本项目旨在创建一个可本地运行的用户注册与登录系统,支持验证用户名和密码,并记录登录状态。通过简单的前端界面,用户可以输入用户名和密码进行验证,系统记录状态并保存验证结果,方便后续调试和管理。
思路分析
本项目的核心功能包括:
1. 用户输入验证逻辑:验证用户名和密码的合法性,确保符合规则。
2. 登录状态记录机制:通过简单的布尔变量记录登录状态,便于后续验证。
3. 文件读写功能:保存验证结果到本地存储中,便于后续复现或管理。
本项目采用HTML、CSS和JavaScript实现,无需依赖框架,可以在本地运行。通过简单的逻辑处理,即可实现基本的功能,符合1~3天的实现难度要求。
代码实现
<!DOCTYPE html>
<html>
<head>
<title>用户注册与登录系统</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
padding: 20px;
}
h2 {
text-align: center;
color: #333;
}
</style>
</head>
<body>
<h2>用户注册与登录系统</h2>
<form id="login-form">
<label for="username">用户名:</label>
<input type="text" id="username" placeholder="请输入用户名" required>
<label for="password">密码:</label>
<input type="password" id="password" placeholder="请输入密码" required>
<button type="submit">登录</button>
</form>
<script>
// 初始化登录状态为未激活
let isLoggedIn = false;
// 验证用户名和密码
function validateUser(input) {
let isValid = true;
if (input.username === '') {
alert("用户名不能为空!");
return false;
}
if (input.password === '') {
alert("密码不能为空!");
return false;
}
// 检查密码长度是否符合要求
if (input.password.length < 6) {
alert("密码长度需至少6位!");
return false;
}
// 检查密码是否包含数字
if (!/^\d+$/.test(input.password)) {
alert("密码必须包含数字!");
return false;
}
// 检查用户名是否符合规则
if (!/[A-Z][a-z]+/.test(input.username)) {
alert("用户名必须包含大写字母和小写字母!");
return false;
}
return isValid;
}
// 保存验证结果到localStorage
function saveLoginStatus() {
let loginStatus = isLoggedIn ? '已激活' : '未激活';
localStorage.setItem('login_status', loginStatus);
}
// 页面加载时记录状态
document.addEventListener('DOMContentLoaded', () => {
let status = localStorage.getItem('login_status');
if (status) {
isLoggedIn = JSON.parse(status);
}
// 判断状态并记录
document.getElementById('login-status').textContent = isLoggedIn ? '已激活' : '未激活';
});
// 表单提交验证并记录状态
document.getElementById('login-form').addEventListener('submit', (e) => {
e.preventDefault();
let username = document.getElementById('username').value.trim();
let password = document.getElementById('password').value.trim();
if (validateUser({ username, password })) {
saveLoginStatus();
document.getElementById('login-status').textContent = '已激活';
setTimeout(() => {
alert("登录成功!账户已激活");
}, 2000);
} else {
document.getElementById('login-status').textContent = '未激活';
setTimeout(() => {
alert("验证失败,请重新输入");
}, 2000);
}
});
</script>
</body>
</html>
总结
本项目通过HTML、CSS和JavaScript实现用户注册与登录系统,支持验证用户名和密码,并记录登录状态。通过简单的逻辑处理,实现了基本的功能,符合1~3天的实现难度要求。系统具备独立运行特性,并保存验证结果至localStorage,便于后续调试。整个项目结构清晰,包含核心功能,满足用户需求。