JQuery & Regex

Résolu
ameb2908 Messages postés 81 Date d'inscription jeudi 17 mars 2022 Statut Membre Dernière intervention 13 avril 2024 - 2 août 2023 à 11:49
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 - 2 août 2023 à 14:32

Bonjour, je ne voudrais que des lettres minuscules dans un champ nom, il suffit que je mettes une lettre capitale, çà passe comme même. Merci d'avance & bonne journée.

$(document).ready(function() {

$('#submit').click(function() {

        var result = true;

        if($('#username').val() == '') {
            
            $('#username').css('border', '3px solid #8b0000');
            $('.username_error').text('Veuillez remplir votre nom !').css('color', '#8b0000');

            result = false;
        }
        else if(!$('#username').val().match(/[a-z]/)) {

            $('#username').css('border', '3px solid #8b0000');
            $('.username_error').text('Les lettres minuscules sont seulement autorisées 
                !').css('color', '#8b0000');

            result = false;
        }
        else {

            $('#username').css('border', '3px solid green');
            $('.username_error').text('');
        }
        
        return result;
});
});


Windows / Chrome 115.0.0.0

3 réponses

Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
2 août 2023 à 12:22

Bonjour 

ta regex teste si ton texte contient une minuscule. Donc par exemple AZERTY§_<>/;:?u serait accepté puisqu'il y un u minuscules.

Il faut donc une regex qui vérifie la totalité du texte, elle doit commencer par ^ pour signaler que la capture commence au début de la ligne, et finir par $ pour signaler qu'elle termine à la fin de la ligne.

Ensuite, il faut indiquer le nombre de lettres minuscules que doit avoir le nom.

Évidemment décider arbitrairement que le nom des gens doit faire 8 ou 13 lettres est contre intuitif, mais il faut définir une répétition acceptable du nombre de minuscules, soit * qui veut 0 ou plus, soit ? qui veut dire une ou plus, soit par exemple {3,} qui veut dire 3 ou plus, soit par exemple {4,20} qui veut dire entre 4 et 20.

Dans cet exemple https://regex101.com/r/3IbXYv/1 seuls ok et top sont acceptés car ils font entre 2 et 3 minuscules.

Attention, les diacritiques seront refusés, comme ça et été dans l'exemple 


1
ameb2908 Messages postés 81 Date d'inscription jeudi 17 mars 2022 Statut Membre Dernière intervention 13 avril 2024
2 août 2023 à 14:17

Merci beaucoup

0
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
2 août 2023 à 14:32

De rien


0