function validateUsername(username) {
const usernamePattern = /^[a-zA-Z0-9]{6,12}$/;
return usernamePattern.test(username);
}
function validatePassword(password) {
const passwordPattern = /^(?=.*d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,20}$/;
return passwordPattern.test(password);
}
function validateEmail(email) {
const emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$/;
return emailPattern.test(email);
}
function sanitizeInput(input) {
return input.replace(/[<>]/g, '');
}
function showErrorMessage(error) {
const errorMessage = document.createElement("div");
errorMessage.innerText = `Registration failed: ${error}`;
document.body.appendChild(errorMessage);
}
function showSuccessMessage() {
const successMessage = document.createElement("div");
successMessage.innerText = "Registration successful! Redirecting to login page...";
document.body.appendChild(successMessage);
setTimeout(() => {
window.location.href = "login.html";
}, 3000);
}
function submitForm(data) {
const xhr = new XMLHttpRequest();
xhr.open("POST", "https://example.com/register", true);
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
showSuccessMessage();
} else if (xhr.readyState === 4) {
showErrorMessage(xhr.responseText);
}
};
xhr.onerror = function () {
showErrorMessage("Network error, please try again later.");
};
xhr.send(JSON.stringify(data));
}
function registerUser(event) {
event.preventDefault();
const username = sanitizeInput(document.getElementById("username").value);
const password = sanitizeInput(document.getElementById("password").value);
const email = sanitizeInput(document.getElementById("email").value);
if (!validateUsername(username)) {
showErrorMessage("Invalid username. It should be 6-12 characters long and contain only letters and numbers.");
return;
}
if (!validatePassword(password)) {
showErrorMessage("Invalid password. It should be 8-20 characters long and include at least one uppercase letter, one lowercase letter, one digit, and one special character.");
return;
}
if (!validateEmail(email)) {
showErrorMessage("Invalid email format.");
return;
}
const userData = {
username: username,
password: password,
email: email
};
submitForm(userData);
}
友情链接:
©Copyright © 2022 2006年世界杯歌曲_冰岛世界杯排名 - guoyunzhan.com All Rights Reserved.