summaryrefslogtreecommitdiff
path: root/Static/Js/register.js
blob: f5cdc92193295ffb09e63208d1d93c707b53e99d (plain)
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

// ############################################################################
// #                                                                          #
// # Description: JS de la partie inscription                                 #
// #                                                                          #
// ############################################################################


// Num -   N'importe quel chiffre entre 0 et 9 [0-9]
// Upper - N'importe quel lettre majuscule entre A et Z [A-Z]
// Spe -   N'importe quel symbole présent entre les deux brackets [`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~µ°€£]
// Email - ^ -> Debut de la ligne obligatoire, doit contenir entre premiers brackets "[a-z]" "[0-9]" ou _, -, .
//     Ensuite il doit y avoir un @ et une suite de charcactère sans charactère speciaux "+@[a-zA-Z0-9-]"
//     et pour finir l'extension "+.[a-z]", "+$" pour la fin de la ligne.
const regNum      = new RegExp(/[0-9]/);
const regUpper    = new RegExp(/[A-Z]/);
const regSpecial  = new RegExp(/[`!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~µ°€£]/);
const regEmail    = new RegExp(/^[a-z0-9._-]+@[a-z0-9-]+.[a-z]+$/)

// Initialisation des variables
let validEmail;
let validNumb;
let validUpper;
let validSpecial;
let validLength;

function valid_all() {
    let submitButton = document.getElementById("submit");
    // Si tout est validé on active le button sumbit
    if (validLength && validUpper && validNumb && validSpecial && validEmail) {
        submitButton.classList.remove("deactivate");
        submitButton.disabled = false;
    } else {
        submitButton.classList.add("deactivate");
        submitButton.disabled = true;
    }
}

function valid_reg(condition, element) {
    // Si la regex est bonne on selectionne la class css pour l'afficher
    if (condition) {
        document.getElementById(element).classList.remove("invalid");
        document.getElementById(element).classList.add("valid");
        return true;
    } else {
        document.getElementById(element).classList.remove("valid");
        document.getElementById(element).classList.add("invalid");
        return false;
    }
}

function check_email() {
    // On récupère l'email par id dans la page et on test notre regex
    let email = document.getElementById("email").value;
    validEmail = valid_reg(regEmail.test(email), "mailNotice");

    valid_all();
}

function check_pass() {
    // On récupère la valeur par id du mdp dans la page et on test nos regex
    let pass         = document.getElementById("password").value;
    validNumb    = valid_reg(regNum.test(pass), "passNumb");
    validUpper   = valid_reg(regUpper.test(pass), "passUpper");
    validSpecial = valid_reg(regSpecial.test(pass), "passSpecial");
    validLength  = valid_reg((pass.length >= 8), "passLength");

    valid_all();
}