如何使用正则表达式使用knockout bindinding handler显示电话号码格式?电话号码格式如 (xxx)xxx-xxxx。
我的代码在这里
function formatPhone() {
var regex = new RegExp('00(\d{2})(\d)(\d{3})(\d{2})');
return regex;
}
ko.bindingHandlers.formatNumberText = {
init: function (element, valueAccessor, allBindingsAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
ko.applyBindingsToNode(element, formatPhone);
}
};
并在.cshtml中显示电话号码:
<span data-bind="formatNumberText:Number"></span>
答案 0 :(得分:3)
你可以这样做:
ko.bindingHandlers.formatNumberText = {
update: function(element, valueAccessor) {
var phone = ko.utils.unwrapObservable(valueAccessor());
var formatPhone = function() {
return phone.replace(/(\d{3})(\d{3})(\d{4})/, "($1) $2-$3");
}
ko.bindingHandlers.text.update(element, formatPhone);
}
};
包装标准ko绑定'text'。 用于电话的正则表达式用10位数字符串表示。 查看小提琴:http://jsfiddle.net/nk22Z/1/
答案 1 :(得分:0)
this.phone = ko.observable(null).extend({ phoneUS: true });
<div class="col-sm-4" data-bind="validationElement: phone">
<input type="text" class="form-control height_25" data-bind="value: phone" />
</div>
phoneUS验证支持:(xxx)xxx-xxxx