-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidation.js
More file actions
70 lines (57 loc) · 2.44 KB
/
Copy pathvalidation.js
File metadata and controls
70 lines (57 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
document.getElementById("submitBtn").addEventListener("click", validateForm);
document.getElementById("clearBtn").addEventListener("click", clearForm);
function validateForm() {
const username = document.getElementById("username").value.trim();
const email = document.getElementById("email").value.trim();
const phone = document.getElementById("phone").value.trim();
const password = document.getElementById("password").value.trim();
const confirm = document.getElementById("confirm").value.trim();
const gender = document.querySelector('input[name="gender"]:checked');
const age = document.getElementById("age").value;
const usernameRegex = /^[a-z0-9]{4,12}$/;
const emailRegex = /^[\w.-]+@[a-zA-Z\d.-]+\.(com|net|org|edu)$/;
const phoneRegex = /^\(\d{3}\)-\d{3}-\d{4}$/;
// Strong password now required:
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*\W).{8,}$/;
resetLabels();
function setLabel(labelId, colorClass) {
const label = document.getElementById(labelId);
label.classList.remove("error", "warning");
if (colorClass) label.classList.add(colorClass);
}
// Username
if (username === "") setLabel("usernameLabel", "error");
else if (!usernameRegex.test(username)) setLabel("usernameLabel", "warning");
// Email
if (email === "") setLabel("emailLabel", "error");
else if (!emailRegex.test(email)) setLabel("emailLabel", "warning");
// Phone
if (phone === "") setLabel("phoneLabel", "error");
else if (!phoneRegex.test(phone)) setLabel("phoneLabel", "warning");
// Password
if (password === "") setLabel("passwordLabel", "error");
else if (!passwordRegex.test(password)) {
setLabel("passwordLabel", "warning");
alert("Password must include at least 1 uppercase, 1 lowercase, 1 number, and 1 special character.");
}
// Confirm Password
if (confirm === "") setLabel("confirmLabel", "error");
else if (confirm !== password) {
alert("Passwords do not match!");
setLabel("confirmLabel", "warning");
}
// Gender
if (!gender) {
setLabel("Gender", "error");
alert("Please select a gender.");
}
// Age group
if (age === "") setLabel("ageLabel", "error");
}
function resetLabels() {
const labels = document.querySelectorAll("label");
labels.forEach(label => label.classList.remove("error", "warning"));
}
function clearForm() {
resetLabels();
}