我正在尝试使用 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/