11523 sujets

JavaScript, DOM et API Web HTML5

bonjour
j'essaie de mettre en place une validation de mon champs mot de passe grace à jquery et une expression régulière.
mon script fonctionnait avec un test simple de remplissage du type if( $("#password2").val() == "" ) mais depuis que j'essaie de poser une condition avec un expression régulière ça ne passe plus !?
est ce que quelqu'un pourrait m'expliquer ce qui ne fonctionne pas
voici mon code

<script>
 $(document).ready(function()
    {
 
        $("#btnvalider").click(function(){
            valid = true;
 
            if( $("#password").val().match(/^[a-z]$/i)){
               $( "#error" ).slideDown( "slow");
                valid == false;
            }else{
                $( "#error" ).slideUp( "slow");
            }        
 
            if( $("#password2").val() == "" ){
               $( "#error2" ).slideDown( "slow");
                valid == false;        
             }else{
                $( "#error2" ).slideUp( "slow");
            }       
           return valid;
        });   
 
    });
</script>


2eme question mon objectif serait de poser comme condition pour le mot de passe:
6 caractère minimum
au moins 1 lettre et au moins 1 chiffre

est ce ça pourrait correspondre à ça
/([A-Z]*)([a-z]*)([\d]*)([\w]{6,})/i

merci pour votre aide
Bonjour.

Ne serait-ce pas juste simplement que tu ne fais pas le test sur le même input password ou en as-tu deux ?

Pour ta deuxième question, si tu veux faire ça en une seule regex, je pense qu'il va te falloir obligatoirement passer par une assertion (forcément en avant en JS), donc je te dirais bien d'essayer un truc du genre :
^(?=.*[a-zA-Z])(?=.*[0-9]).{6,}$

EDIT :
Attention à tes lignes "valid == false;" qui ne veulent rien dire !
Modifié par SolidSnake (16 Jan 2015 - 08:59)