使用正则表达式的电话号码格式的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绑定处理程序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vim 命令中使用正则表达式格式化电话号码列表?

判断手机号正则表达式

使用正则表达式将数字转换为电话格式

C# - 使用正则表达式验证电话号码

德国电话号码格式的正则表达式

关于手机号码正则判断,在Vue3中的使用