背景介绍
本项目旨在实现一个用户登录验证功能,用于记录用户的登录状态。通过用户输入用户名和密码,系统将验证登录有效性,并记录验证结果。该功能需要独立运行,使用HTML、CSS和JavaScript实现,同时支持文件操作以存储验证结果。
思路分析
- 数据结构选择
根据验证逻辑,可使用数组或对象来记录验证结果。例如,使用数组存储验证状态,或记录用户登录的详细信息,以提高数据的可读性和扩展性。 -
验证逻辑设计
- 输入验证:检查用户名和密码的合法性,包括大小、字符类型等。
- 输出结果:根据验证结果返回”登录成功”或”密码错误”的提示信息。
代码实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>用户登录验证功能</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
background-color: #f4f4f4;
}
h1 {
color: #333;
}
#result {
margin-top: 20px;
font-size: 18px;
}
</style>
</head>
<body>
<h1>用户登录验证功能</h1>
<form id="loginForm">
<label for="username">用户名:</label>
<input type="text" id="username" placeholder="输入用户名" required><br>
<label for="password">密码:</label>
<input type="password" id="password" placeholder="输入密码" required><br>
<button type="submit">登录</button>
</form>
<div id="result"></div>
<script>
let loginResults = [];
function validateLogin(username, password) {
// 检查用户名和密码的合法性
if (username.trim() === "" || password.trim() === "") {
return "密码为空,请填写";
}
if (!/^[a-z]+$/.test(username)) {
return "用户名必须为字母";
}
if (!/^[0-9]+$/.test(password)) {
return "密码必须为数字";
}
return "登录成功";
}
function saveToLocalStorage(data) {
if (localStorage.getItem("loginResults")) {
loginResults = JSON.parse(localStorage.getItem("loginResults"));
}
localStorage.setItem("loginResults", JSON.stringify(loginResults));
}
function getLoginResult() {
const result = localStorage.getItem("loginResults");
if (result) {
document.getElementById("result").innerHTML = result;
} else {
document.getElementById("result").innerHTML = "登录成功";
}
}
document.getElementById("loginForm").addEventListener("submit", function(e) {
e.preventDefault();
const username = document.getElementById("username").value;
const password = document.getElementById("password").value;
const result = validateLogin(username, password);
saveToLocalStorage(result);
getLoginResult();
});
</script>
</body>
</html>
总结
本项目实现了用户登录验证功能,通过HTML、CSS和JavaScript实现验证逻辑,支持文件操作以记录验证结果。代码中使用了数组存储验证结果,并通过JavaScript实现验证逻辑的封装。该功能能够帮助用户记录登录状态,支持后续的维护和扩展,体现了文件操作的知识点。