2017-06-02 1 views
-1

J'ai une règle de validation où un mot de passe doit être de 6 caractères ou plus. Mais cette règle de validation n'est pas satisfaite/échoue est le mot de passe des utilisateurs contient des caractères spéciaux.La règle de longueur du validateur backbone ne prend pas en compte les caractères spéciaux?

Par exemple; un mot de passe tel que @ _a&^ donne le validateur en disant Password must be 6 or more characters in length.. Peut-être que le validateur ne compte pas les caractères spéciaux? Un mot de passe tel que abc123 est correct et le validateur fonctionne (ne se plaint pas). mot de passe tel que abc le validateur fonctionne et affiche le message d'erreur.

Comment puis-je faire en sorte que le validateur compte les caractères spéciaux? Est-ce que je vais devoir lancer mon propre validateur?

validation: function() { 
     return { 
      password: [ 
       { required: true, msg: _('Password is required.').translate() } 
      , { length: 6, msg: _('Password must be 6 or more characters in length.').translate() } 
      ] 
     , password2: [ 
       { required: true, msg: _('Password is required').translate() } 
      , { equalTo: 'password', msg: _('Password and Confirm Password do not match').translate() } 
      ] 
     } 
    } 

Répondre

0

Je l'ai testé et cela fonctionne comme prévu. Le code que vous avez partagé ne montre pas le problème. Cela étant dit, vous devriez probablement utiliser minLength puisque tout mot de passe de plus de 6 caractères est incorrect avec votre validation actuelle.

_.extend(Backbone.Model.prototype, Backbone.Validation.mixin); 
 

 
var Model = Backbone.Model.extend({ 
 
    validation: function() { 
 
    return { 
 
     password: [{ 
 
     required: true, 
 
     msg: 'Password is required.' 
 
     }, { 
 
     length: 6, 
 
     msg: 'Password must be 6 or more characters in length.' 
 
     }] 
 
    }; 
 
    } 
 
}); 
 

 
var model = new Model({ password: '@ _a&^' }); 
 
console.log('@ _a&^', model.validate()); 
 
model.set('password','@ _a&'); 
 
console.log('@ _a&', model.validate());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.validation/0.11.5/backbone-validation-min.js"></script>