2

ノックアウト検証プラグインを使用していますが、このシナリオで問題が発生しています

required は false ですが、入力がある場合は正確に 5 桁でなければなりません

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

誰でもここで問題を見ることができますか?

乾杯!

4

1 に答える 1

2

検証プラグインは内部で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 のデモ。

于 2013-06-14T06:11:22.800 に答える