Jquery 如何创建一个万无一失的电话号码字段-并考虑复制/粘贴

Jquery 如何创建一个万无一失的电话号码字段-并考虑复制/粘贴,jquery,html,Jquery,Html,我想把我的电话号码字段分成3个字段(区号,下3个,下4个)。我想说明几个条件: 字段具有指定位数后,光标将自动移动到下一个字段 如果用户将其整个电话号码粘贴到第一个字段中,jQuery将相应地将10位数字分配出去 我有1个工作,没问题: 然而,#2被证明是我的jQuery联盟之外的一条路——所以我在这里请求一些帮助 第二,我想知道我是否忽略了什么?我不这么认为,但我想我会把它扔出去 我应该补充一点,我已经考虑过这一点:-但我倾向于认为上面的内容对用户来说更令人愉快…也许我错了 更新-仅限美国电话

我想把我的电话号码字段分成3个字段(区号,下3个,下4个)。我想说明几个条件:

  • 字段具有指定位数后,光标将自动移动到下一个字段
  • 如果用户将其整个电话号码粘贴到第一个字段中,jQuery将相应地将10位数字分配出去
  • 我有1个工作,没问题:

    然而,#2被证明是我的jQuery联盟之外的一条路——所以我在这里请求一些帮助

    第二,我想知道我是否忽略了什么?我不这么认为,但我想我会把它扔出去

    我应该补充一点,我已经考虑过这一点:-但我倾向于认为上面的内容对用户来说更令人愉快…也许我错了

    更新-仅限美国电话号码=)


    更新2-一位朋友给我发了这样的邮件:

    类似的内容-获取字段值,删除非数字字符,测试长度,必要时将其拆分:

    $('#telephone1').on('change',function(e) {
        var $this = $(this),
            phone = $this.val().replace(/\D/g, ''); // remove non-numeric characters
        if (phone.length > 3) {
            $('#telephone3').val(phone.substr(6,4));
            $('#telephone2').val(phone.substr(3,3));
            $('#telephone1').val(phone.substr(0,3));
        } else {
            $('#telephone1').val(phone);
        };
    });
    

    (区号,下一个3,下一个4)-我的电话号码由区号和6位数字组成。在你接受的内容上要自由。你可能还想让它忽略所有非数字的按键,因为用户不知道这一切将如何工作,可能会输入括号、破折号和/或句点。我会将它们全部保留在一个文本字段中。正如你所描述的,在接下来的几个月里,这三个问题将变得过于僵化。美国的规则正在改变,而且这种格式甚至没有开始处理国际号码。@JonathanM:请链接到美国规则的改变?@Quentin你在美国吗?我应该说这只是我们…哦,好吧,我没意识到这是去另一个里面。10-4,谢谢,我觉得那看起来不错。参加新的问题比参加旧的并且已经接受答案的问题要好。有时,技术变化或人们在一个老问题上添加了一些非常聪明的东西,但他们可能在两年前当这个问题被问到时就知道这种jQuery了。。。
    var num = $('.number').html();
    var first = num.substr(0,3);
    var second = num.substr(3,4);
    var third = num.substr(7,4);
    var newNum = first + ' ' + second + ' ' + third;
    $('.number').html(newNum);