【问题标题】:knockout validation regex not evaluating properly淘汰赛验证正则表达式没有正确评估
【发布时间】:2014-01-12 22:29:20
【问题描述】:

我正在使用 knockoutjs 和敲除验证。我试图限制输入分号。我试过这个:

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

..不知何故,当我在文本输入中输入“pppppp”时,它被认为是无效的。但是'eee'是有效的,请帮忙?

谢谢!

【问题讨论】:

  • 通常,整个输入都会被验证,除非这只是验证击键,即:是刚刚输入的键 不是分号。否则,它可能是[^;]+,如果它暗示开始到结束,^[^;]+$,如果不是。
  • 这似乎没有任何效果。有什么想法吗?

标签: regex validation knockout.js


【解决方案1】:

看来您需要包含自定义消息,或者不使用包装对象。

Check out this js fiddle.

以下结构有效:

.extend({
    pattern: {
        params: '^[^;]*$'
        , message:"fail"
    }
})

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

但是,这会导致意外行为:

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

【讨论】:

  • 奇怪的是,这解决了问题。我仍然不完全确定为什么,但它有效 - 谢谢!
  • 很可能,代码在某处天真地调用field.pattern.message 并尝试将其视为字符串。这会生成一个错误,导致验证失败。
猜你喜欢
  • 2013-05-29
  • 2018-01-01
  • 2013-03-24
  • 2013-03-22
  • 2012-11-21
  • 1970-01-01
  • 2014-11-04
  • 2012-02-18
  • 1970-01-01
相关资源
最近更新 更多