我试图按如下方式屏蔽电话号码:
(123)131-5135-(x1345)。
“1345”是扩展名。但是我无法通过退格键删除扩展名。我必须选择扩展名然后删除它。代码如下:
<input type="text" id="aphonen" class="form-control" value="" />
<script>
document.getElementById('aphonen').addEventListener('input', function (e) {
var a = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})(\d{0,4})/);
e.target.value = !a[2] ? a[1] : '(' + a[1] + ') ' + a[2] + (a[3] ? '-' + a[3] : '') + (a[4] ? '- (x' + a[4] +')' : '');
});
</script>
为什么退格不起作用?
答案 0 :(得分:1)
在您的代码中,您必须检查按下了哪个键,如果它不是退格键,则只运行您的代码,下面是代码段:
var code;
document.getElementById('aphonen').addEventListener('input', function (e) {
if(code !== 8){
var a = e.target.value.replace(/\D/g, '').match(/(\d{0,3})(\d{0,3})(\d{0,4})(\d{0,4})/);
e.target.value = !a[2] ? a[1] : '(' + a[1] + ') ' + a[2] + (a[3] ? '-' + a[3] : '') + (a[4] ? '- (x' + a[4] +')' : '');
}
});
window.onkeydown = function (e) {
code = e.keyCode ? e.keyCode : e.which;
// console.log(code);
};
&#13;
<input type="text" id="aphonen" class="form-control" value="" />
&#13;