javascript或jquery仅输入文本编号和自动屏蔽

我使用javascript和jquery。

我想制作一个掩蔽模板

其中只接受数字每个数字键盘结果的自动屏蔽格式

屏蔽格式为:99-99-99-99- [重复格式,直到最后输入的数字]

有效输入和结果的示例:

输入:001234567890
结果:00-12-34-56-78-90-

输入:00 [退格] 1234567890
结果:01-23-45-67-89-0

输入:00 [退格] 1234567890
结果:01-23-45-67-89-0

我目前完整的html工作脚本有问题:

        var count1=0; var strPrev1 = ''; $(document).ready(function() { $('#input1').keyup(function(e) { // Filter input text to accept only numbers , arrow movement, backspace, delete if ((e.keyCode == 8) || (e.keyCode == 46) || (e.keyCode >= 35 && e.keyCode = 48 && e.keyCode = 96 && e.keyCode = 48 && e.keyCode = 96 && e.keyCode <= 105)) { count1++; // if count1 % 2 = 0, add divider '-' if (count1 % 2 == 0) { $("#input1").val($("#input1").val()+'-'); } } if ((e.keyCode == 8) || (e.keyCode == 46)) { // no idea what to do to keep the mask format 99-99-99-99-[repeat format until last inputed number] is it "count1--;" ? } strPrev1 = $("#input1").val(); } else { // replace input text value with previous accepted $("#input1").val(strPrev1); } }); });     

问题是如何将其保持在屏蔽格式99-99-99-99- [重复格式直到最后输入的数字]?
1.如果用户按下删除或退格键,则将更改。 如何保持屏蔽格式不变?
例如:
输入:按1234567890,向左箭头移动到4,按删除,按8,然后移到最后一行并按12
我错了结果:12-38-56-78-90-1-2
正确的结果:12-38-56-78-90-12-

2.如果用户以非常快的速度按下数字,输入掩码将变得奇怪……有时它可能变成999-9-99-99-99-等掩蔽格式。 没有给我所需的屏蔽格式..它应该仍然采用屏蔽格式:99-99-99-99- [重复格式直到最后输入的数字]。 如何修复我当前的脚本?

例如:
输入:快速输入123
我的错误结果:123-
正确的结果:12-3

知道如何修复我的脚本吗?

PS:
我已经阅读了以下链接,仍然无法修复我的脚本:
如何使用jQuery仅允许HTML输入框中的数字(0-9)?
只接受Textbox中的数字 – jQuery
jquery插件来格式化文本输入
如何只允许文本输入中的数字,但允许使用JavaScript命令?
只允许使用javascript输入数字并允许复制和粘贴?
仅在粘贴时将输入限制为数字
jQuery只输入数字
掩码输入数量 – 百分比
使用javascript进行Autotab输入
仅允许输入Tage中的Numbers而不使用Javascript
如何在没有Javascript的情况下强制输入中的数字?
帮助改进这个javascript输入掩码
为什么我的jquery输入掩码不起作用?

如果用户按住某个键,则不会触发keyup事件,请使用keypress事件处理程序。 这是我改变的:

 $('#input1').keypress(function(e) 

 if (count1 > 0 && count1 % 2 == 0) { $("#input1").val($("#input1").val()+'-'); } count1++; 

DEMO

由我自己完成。 这是答案:

       RESULT :  SOURCE :    

使用.match(/。{1,2} / g)然后加入()它。 最后, .replace(/,/ g,“ - ”))输入的字符串。