📅  最后修改于: 2023-12-03 15:12:18.112000             🧑  作者: Mango
在一些输入框中,我们需要输入特定的格式,如电话号码、身份证号码等。为了方便用户输入,我们可以使用输入掩码来限制输入格式。本篇文章将介绍如何用Javascript实现一个输入掩码来限制输入9位数字,并自动在第5位添加一个-
符号。
我们可以通过监听输入框的keypress
事件来实现输入限制和添加-
符号。具体步骤如下:
keypress
事件-
符号-
符号// 获取输入框
let input = document.getElementById('myInput');
// 监听keypress事件
input.addEventListener('keypress', function (event) {
// 获取当前输入框中的内容
let value = this.value;
// 获取当前按下的键对应的字符
let char = String.fromCharCode(event.which);
// 判断是否为数字
if (/\d/.test(char)) {
// 是否已经有了-符号
let hasDash = value.includes('-');
// 当前光标位置
let cursorPos = this.selectionStart;
// 如果已经有了-符号
if (hasDash) {
// 判断输入位置是否为5
if (cursorPos === 5) {
// 在输入位置自动添加-
value = `${value.slice(0, cursorPos)}-${value.slice(cursorPos)}`;
// 更新输入框内容
this.value = value;
// 将光标位置移到下一个空格
this.setSelectionRange(cursorPos + 2, cursorPos + 2);
}
} else {
// 如果没有-符号,且输入位置为5,添加-符号
if (cursorPos === 5) {
value = `${value.slice(0, cursorPos)}-${value.slice(cursorPos)}`;
this.value = value;
this.setSelectionRange(cursorPos + 2, cursorPos + 2);
}
}
}
// 阻止默认行为,避免输入框中出现其他字符
event.preventDefault();
});
myInput
通过监听输入框的keypress
事件,我们可以实现输入掩码来限制输入的格式。这里只是一个简单的例子,更多的限制方式可以根据实际需求来实现。