如何在html中将文本字段输入从1234567891234转换为1234-56-789-1234?

时间:2017-09-13 18:12:33

标签: javascript jquery html css

我有这个文本域

<div class="name">
   <label for="name">NSN</label>
   <input type="text" id="NSN" name="name" />
</div>

我知道如何使用此Jquery

为数字输入添加彗差
$("#NSN").on('keyup', function(){
var n = parseInt($(this).val().replace(/\D/g,''),10);
$(this).val(n.toLocaleString());
});

但是如何添加 - 在第4个数字之后,第6个之后以及第9个之后。

2 个答案:

答案 0 :(得分:0)

添加了这些文件

<script src="../Js/inputmask.js"></script>
<script src="../Js/inputmask.extensions.js"></script>
<script src="../Js/inputmask.numeric.extensions.js"></script>

和以下代码设置NSN的掩码

var NSNselector = document.getElementById("NSN");
var im = new Inputmask("9999-999-9999-999");
im.mask(NSNselector);

有关屏蔽的详细信息,请参阅以下链接。 https://www.npmjs.com/package/jquery.inputmask

答案 1 :(得分:0)

试试这个:

<p>Masked on the keyup event</p>
<input type="text" id="phone" placeholder="1234-56-789-1234"/>

然后:

<script>
  document.getElementById('phone').addEventListener('keyup', function (e) {
    var x = e.target.value.replace(/\D/g, '').match(/(\d{4})(\d{2})(\d{3})(\d{4})/);
    e.target.value = x[1] + '-' + x[2] + '-' + x[3]+ '-' + x[4];
  });
</script>