2012-12-09 21 views
7

È necessario aggiungere un controllo regolare al mio script jquery.validate.aggiungi regex a jquery.validate

ho questo:

$().ready(function() { 
    $("#myBlahForm").validate({ 

    rules: { 
     someName: { 
      required: true, 
      minlength: 5, 
      maxlength: 8, 
     }, 
     somePassword: { 
      required: true, 
          minlength: 5, 
      maxlength: 8, 
     }, 
     someConfirmPassword: { 
      required: true, 
      equalTo: "#somePassword" 
     }, 
    }, 
    messages: { 
     someName: { 
      required: "Please create your username", 
     }, 
     somePassword: { 
      required: "Please create a password", 
     }, 
     someConfirmPassword: { 
      required: "Please re-enter your password", 
      equalTo: "Passwords must match" 
     }, 
    } 
}); 

});

E vorrei verificare la presenza di caratteri specifici che sono ammessi nel DB per le password quando l'utente inserisce i propri dati qui:

<label for="someName">Username</label> 
    <input type="text" id="someName" name="someName" placeholder="Create a Username"/> 

    <label for="somePassword">Password</label> 
    <input type="password" id="somePassword" name="somePassword" placeholder="Create a Password"/> 

    <label for="someConfirmPassword">Confirm Password </label> 
    <input type="password" id="someConfirmPassword" name="someConfirmPassword" placeholder="Verify your Password"/> 

Qual è il modo migliore per aggiungere un controllo regex per un campo obbligatorio tale come password o nome utente utilizzando il plug-in jquery.validate da bassisstance: http://docs.jquery.com/Plugins/Validation

Fondamentalmente, devo assicurarmi che la password e i nomi utente che hanno creato abbiano solo 0-9, lettere e un paio di caratteri speciali.

+1

possibile duplicato del [jQuery convalidare:? Come aggiungere una regola per regolare convalida espressione] (http://stackoverflow.com/questions/280759/jquery-validate-how-to-add-a-rule-for-regular-expression-validation) – ABMagil

risposta

26

bene, si potrebbe aggiungere il metodo di validazione personalizzata utilizzando addMethod, come

$.validator.addMethod("regx", function(value, element, regexpr) {   
    return regexpr.test(value); 
}, "Please enter a valid pasword."); 

E,

... 
$("#myBlahForm").validate({ 

    rules: { 
     somePassword: { 
      required: true , 
      //change regexp to suit your needs 
      regx: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])\w{6,}$/, 
      minlength: 5, 
      maxlength: 8 
     } 
    } 
3
required: function(element){ 
    return /[a-zA-Z0-9]/.test($('#someConfirmPassword').val()); 
} 

L'espressione sopra restituirà true se regexp passa, false se non lo è. Cambialo in base alle tue esigenze.

+0

Grazie mille !! ;-) – mzalazar