используя нокаутную проверку, как это сделать, я проверяю ровно 5 цифр и принимаю пустой ввод

Я использую плагин проверки нокаута и столкнулся с проблемой в этом сценарии.

required ложно, но если есть ввод - должно быть ровно 5 цифр

    var fileno = ko.observable()
        .extend({ pattern: {
             message: 'not exactly 5',
             params: '/\b\d{5}\b/g'
        }});

может ли кто-нибудь увидеть проблему здесь?

Ваше здоровье!


person MikeW    schedule 14.06.2013    source источник


Ответы (1)


Плагин проверки использует string.match внутренний метод, который ожидает объект регулярного выражения, и если вы передаете строку, она преобразует ее в объект RegExp с new RegExp(obj), но в этом случае вы не можете использовать такие флаги, как g

Итак, вам нужно передать уже созданный объект регулярного выражения как params

var fileno = ko.observable()
    .extend({ pattern: {
         message: 'not exactly 5',
         params: /\b\d{5}\b/g // or using new RegExp('\\b\\d{5}\\b', 'g')
    }});

Демонстрация JSFiddle.

person nemesv    schedule 14.06.2013