-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
73 lines (61 loc) · 2.36 KB
/
main.js
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
71
72
73
let form = document.getElementById('myForm');
form.addEventListener('submit', function(event) {
event.preventDefault();
validateForm();
});
function showError(inputId, message) {
let inputElement = document.getElementById(inputId);
let errorMessage = document.createElement('div');
errorMessage.className = 'error';
errorMessage.textContent = message;
inputElement.parentNode.insertBefore(errorMessage, inputElement.nextSibling);
}
function clearErrors() {
let errorElements = document.querySelectorAll('.error');
errorElements.forEach(function(error) {
error.remove();
});
}
function validateForm() {
const email = document.getElementById('email').value;
const phone = document.getElementById('phone').value;
const zip = document.getElementById('zip').value;
const password = document.getElementById('password').value;
const url = document.getElementById('url').value;
const date = document.getElementById('date').value;
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
const phonePattern = /^\+\d{1,3}\s?\d{3,14}$/;
const zipCodePattern = /^\d{5}$/;
const passwordPattern = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&*]).{8,}$/;
const urlPattern = /^(http|https):\/\/[^ "]+$/;
const datePattern = /^\d{4}-\d{2}-\d{2}$/;
let isValid = true;
clearErrors();
if (!emailPattern.test(email)) {
showError('email', 'Please enter a valid email');
isValid = false;
}
if (!phonePattern.test(phone)) {
showError('phone', 'Please enter a valid phone number');
isValid = false;
}
if (!zipCodePattern.test(zip)) {
showError('zip', 'Please enter a valid zip code');
isValid = false;
}
if (!passwordPattern.test(password)) {
showError('password', 'Password must contain at least 8 characters including at least one number, one uppercase and one lowercase letter, and one special character');
isValid = false;
}
if (!urlPattern.test(url)) {
showError('url', 'Please enter a valid URL');
isValid = false;
}
if (!datePattern.test(date)) {
showError('date', 'Please enter a valid date in YYYY-MM-DD format');
isValid = false;
}
if (isValid) {
alert('Form submitted successfully!');
}
}