使用正则表达式的电话号码格式的knockout绑定处理程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用正则表达式的电话号码格式的knockout绑定处理程序相关的知识,希望对你有一定的参考价值。
如何使用正则表达式使用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>
答案
你可以这样做:
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绑定'文本'。用于电话的正则表达式用10位数字符串表示。看看小提琴:http://jsfiddle.net/nk22Z/1/
另一答案
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
以上是关于使用正则表达式的电话号码格式的knockout绑定处理程序的主要内容,如果未能解决你的问题,请参考以下文章