2017-06-02 64 views
-1

我有一個驗證規則,其中密碼必須是6個字符或更多。但是這個驗證規則不被滿足/失敗是用戶密碼包含特殊字符。骨幹驗證器長度規則不計算特殊字符?

例如;如@ _a&^的密碼導致驗證者說Password must be 6 or more characters in length.。也許驗證器不計算特殊字符?一個密碼,如abc123是好的,驗證器工作(不抱怨)。密碼,如abc驗證程序工作並顯示錯誤消息。

如何獲取驗證器來計算特殊字符?我是否必須推出自己的驗證器?

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() } 
      ] 
     } 
    } 

回答

0

我測試了它,它按預期工作。您共享的代碼不會顯示問題。

話雖如此,你應該可能使用minLength因爲任何長度超過6個字符的密碼與您當前的驗證不正確。

_.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>