knockout.js - 使用正则表达式进行 knockout 验证来验证电话号码

标签 knockout.js knockout-validation

我正在尝试使用 Knockout-Validation 将简单的正则表达式验证添加到我的一个可观察值中。

我有以下内容:

self.ContactPhone = ko.observable().extend({
            required: true,
            pattern: {
                message: 'Invalid phone number.',
                params: '^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$'
            }
        });

但是,无论我输入什么,它都会返回消息“无效的电话号码”。我需要某种特定的方式来格式化表达式吗?我已经使用纯 JavaScript 对其进行了测试,并且运行良好。

最佳答案

您需要转义反斜杠,否则 javascript 会将您的一个反斜杠本身视为下一个字符的转义字符。这是因为这是一个字符串而不是正则表达式文字。

编辑:实际上我刚刚检查过,您可以使用正则表达式文字来代替,所以其中任何一个都可以做到这一点:

http://jsfiddle.net/antishok/ED3Mh/2/

self.ContactPhone = ko.observable().extend({
    required: true,
    pattern: {
        message: 'Invalid phone number.',
        params: /^\D?(\d{3})\D?\D?(\d{3})\D?(\d{4})$/            
    }
});

或者:

params: '^\\D?(\\d{3})\\D?\\D?(\\d{3})\\D?(\\d{4})$'

关于knockout.js - 使用正则表达式进行 knockout 验证来验证电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15772708/

相关文章:

javascript - JSON.stringify(ComplexArray) 返回一个空字符串

javascript - 简单对象的 knockout 绑定(bind)不起作用

knockout.js - typescript - 同时不允许隐式任何类型

knockout.js - 如何从现有的可观察物中移除增量剂?

javascript - knockout : inject template (component) after applyBindings

javascript - DOM如何获取Knockout JS值

c# - 编辑表单中的 Asp.net mvc 计算字段

javascript - 使用 Knockout 和 Knockout Validation 验证单选按钮未应用预期的 CSS 类

javascript - 无法使用 Knockout 验证来验证自定义组

knockout.js - 带有验证的 Knockout-JS 多步骤表单