Javascript 允许使用空字符串敲除minLength

Javascript 允许使用空字符串敲除minLength,javascript,knockout.js,knockout-validation,Javascript,Knockout.js,Knockout Validation,我是个新手,正在尝试训练如何使用验证。我们有以下代码- var MyObjectModel = function(myObject){ var self = this; self.myNumber = ko.observable(myObject.number).trimmed(); self.myNumber.extend({ minLength: { params: 7, message: "My

我是个新手,正在尝试训练如何使用验证。我们有以下代码-

    var MyObjectModel = function(myObject){
    var self = this;
    self.myNumber = ko.observable(myObject.number).trimmed();
    self.myNumber.extend({
        minLength: {
            params: 7,
            message: "My Number is too short."
        },
        maxLength: {
            params: 7,
            message: "My Number is too long."
        }
    });

    self.errors = ko.validation.group(self);
}
现在我想更改代码,使myObject.number的长度正好为7,或者字段为空。我该如何着手做这个改变


任何帮助都将不胜感激。如果您认为有什么不清楚的地方,请让我知道,以便我可以详细说明。

您可以使用自定义图案:

var MyObjectModel = function(myObject){
    var self = this;
    self.myNumber = ko.observable(myObject.number).trimmed();
    self.myNumber.extend({
        pattern: {
            params: '^[0-9]{7}$|^$',
            message: "My Number must have 7 chars or stay empty."
        }
    });

    self.errors = ko.validation.group(self);
}

您目前使用minLength和minLength的方法有什么问题?到底是什么不起作用?因为它似乎工作正常:只有输入7位数字才有效。minLength和maxLength对我来说工作正常。我还想让这个字段成为可选的。因此,如果用户输入了任何值,则其长度应正好为7个字符,否则应为空。我试过要求:假,但没有帮助。知道我哪里会出错吗?非常感谢!真的帮了我