79 lines
2.5 KiB
JavaScript
79 lines
2.5 KiB
JavaScript
async function register() {
|
|
let username = document.getElementById("username").value;
|
|
let password = document.getElementById("password").value;
|
|
let passwordConfirm = document.getElementById("passwordConfirm").value;
|
|
if (!check_username(username) || !check_password(password) || password !== passwordConfirm) {
|
|
return;
|
|
}
|
|
let status = await fetch("/register", {method: "POST", body: JSON.stringify({"username": username, "password": password})}).then(r => r.status)
|
|
if (status === 200) {
|
|
window.location.href = "/login";
|
|
} else if (status === 400) {
|
|
document.getElementById("message").textContent = "Cet utilisateur existe déjà!"
|
|
}
|
|
}
|
|
|
|
function check_username(username) {
|
|
return username.match(/^[0-9a-zA-Z]+$/);
|
|
}
|
|
|
|
function check_password(password) {
|
|
return password.match(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!-/:-@[-`{-~]).{8,}$/)
|
|
}
|
|
|
|
let button = document.getElementById("register");
|
|
|
|
button.addEventListener("click", () => {
|
|
let _ = register();
|
|
})
|
|
|
|
let username = document.getElementById("username");
|
|
|
|
username.addEventListener("input", () => {
|
|
if (check_username(username.value)) {
|
|
document.getElementById("usernameNotice").className = "ok";
|
|
} else {
|
|
document.getElementById("usernameNotice").className = "error";
|
|
}
|
|
})
|
|
|
|
let password = document.getElementById("password");
|
|
|
|
password.addEventListener("input", () => {
|
|
if (check_password(password.value)) {
|
|
document.getElementById("passwordNotice").className = "ok";
|
|
} else {
|
|
document.getElementById("passwordNotice").className = "error";
|
|
}
|
|
})
|
|
|
|
let passwordConfirm = document.getElementById("passwordConfirm");
|
|
|
|
passwordConfirm.addEventListener("input", () => {
|
|
if (passwordConfirm.value === password.value) {
|
|
document.getElementById("passwordConfirmNotice").className = "ok";
|
|
} else {
|
|
document.getElementById("passwordConfirmNotice").className = "error";
|
|
}
|
|
})
|
|
|
|
let showPassword = document.getElementById("showPassword");
|
|
let showConfirmPassword = document.getElementById("showConfirmPassword");
|
|
showPassword.addEventListener("click", () => {
|
|
let password = document.getElementById("password");
|
|
if (showPassword.checked) {
|
|
password.type = "text";
|
|
} else {
|
|
password.type = "password";
|
|
}
|
|
})
|
|
|
|
showConfirmPassword.addEventListener("click", () => {
|
|
let password = document.getElementById("passwordConfirm");
|
|
if (showConfirmPassword.checked) {
|
|
password.type = "text";
|
|
} else {
|
|
password.type = "password";
|
|
}
|
|
})
|