Knockout验证正则表达式未正确评估

3

我正在使用knockoutjs和knockout validation。我试图限制输入分号。我尝试了以下方法:

.extend({ pattern: { params: "[^;]"} });

当我在文本输入框中输入“pppppp”时,它被视为无效。但是,“eee”是有效的,请帮忙解决?

谢谢!


1
通常情况下,除非只验证按键输入,例如:该按键是否为回车键,否则将验证整个输入。否则,如果涉及从头到尾,则可以使用“[^;]+”,如果不是,则可以使用“^[^;]+$”。 - user557597
这似乎没有任何效果。有什么想法吗? - user3133130
1个回答

3
似乎您需要包含自定义消息或不使用包装对象。 查看这个js fiddle。 以下结构是有效的:
.extend({
    pattern: {
        params: '^[^;]*$'
        , message:"fail"
    }
})

或者

extend({
    pattern: '^[^;]*$'
})

然而,这会导致意外的行为:
.extend({
    pattern: {
        params: '^[^;]*$'
    }
})

很奇怪,这解决了问题。我还不完全确定为什么,但它有效 - 谢谢! - user3133130
1
很可能在某个地方,代码天真地调用了 field.pattern.message 并试图将其视为字符串。这会生成一个错误,导致验证失败。 - FrankieTheKneeMan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接