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 回答