使用分割或长度将div中的10位数字拆分为3,3,4和jQuery

时间:2014-02-25 05:19:08

标签: javascript jquery regex split

使用Digital Bush的maskedInput插件格式化电话号码,然后将该电话号码从屏蔽中分离出来并转换为div。我需要将div内容分成3,3和4 ...即我需要将其分成3个输入(最终将被隐藏)以将其发送回服务器。到目前为止,除了分裂之外,我的一切都在工作,我可能正在使用那个错误,而不是使用长度来分解它。

这是我现在所做的一个工作小提琴:

JS FIDDLE

我就在这里:

 <input id="txtPhoneNumber" name="FancyPhoneNumber" class="required phone" type="text" />
        <div id="txtHiddenPhoneNumber2"></div>

用户输入并将精简值(10个数字)放入div中。然后我将该div放入三个输入字段。

$("#txtPhoneNumber").mask("(999) 999-9999");
                $("#txtPhoneNumber").blur(function () {
                    $("#txtHiddenPhoneNumber").val("");
                    var charArray = $(this).val().split("");
                    var phoneNumber = "";

                    $.each(charArray, function(index, value) {
                        if (!isNaN(value) && value != " ") {
                            phoneNumber = phoneNumber + value;
                        }
                    });

                    $("#txtHiddenPhoneNumber2").append("<div>"+phoneNumber+"</div>")
                    var data =$('#txtHiddenPhoneNumber2').text();
                    var arr = data.match(/.{3}/g);
                    $("#txtHiddenPhoneNumber2").html("<input type=\"text\" value='"+arr[0] +"'>" + "<input type=\"text\" value='"+arr[1]+"'>" + "<input type=\"text\" value='"+arr[2] +"'>");
                });

它正在工作,因为我只需要将最后一个数字发送到最后一个用arr [2]填充的输入字段。我假设我试图使用错误分裂。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

试试此代码

$(document).ready(function() {
    $("#txtPhoneNumber").mask("(999) 999-9999");
    $("#txtPhoneNumber").blur(function () {
        $("#txtHiddenPhoneNumber").val("");

        var data =$("#txtPhoneNumber").val();
        var arr = data.match(/\d{3,4}/g);
        $("#txtHiddenPhoneNumber2").html("<input type=\"text\" value='"+arr[0] +"'>" + "<input type=\"text\" value='"+arr[1]+"'>" + "<input type=\"text\" value='"+arr[2] +"'>");
    });
});