js实现限制
限制输入长度
在JavaScript中限制输入长度可以通过监听输入事件并截断超出部分。使用input事件实时检测输入框内容,当超过最大长度时截断字符串。
const inputElement = document.getElementById('myInput');
const maxLength = 10;
inputElement.addEventListener('input', function() {
if (this.value.length > maxLength) {
this.value = this.value.substring(0, maxLength);
}
});
限制数字范围
限制输入为特定范围的数字可通过正则表达式或数值比较实现。结合keypress事件阻止非法字符输入,并在blur事件时修正超出范围的值。

const numberInput = document.getElementById('numberInput');
const min = 1;
const max = 100;
numberInput.addEventListener('blur', function() {
let value = parseFloat(this.value);
if (isNaN(value)) value = min;
this.value = Math.min(max, Math.max(min, value));
});
限制特殊字符
使用正则表达式在输入时过滤特殊字符。通过keypress或input事件检查每个新输入的字符是否符合规则。

const textInput = document.getElementById('textInput');
textInput.addEventListener('keypress', function(e) {
const allowedChars = /^[a-zA-Z0-9]+$/;
if (!allowedChars.test(e.key)) {
e.preventDefault();
}
});
限制粘贴内容
通过监听paste事件获取剪贴板内容并进行过滤。阻止默认粘贴行为后,插入处理后的文本。
const pasteInput = document.getElementById('pasteInput');
pasteInput.addEventListener('paste', function(e) {
e.preventDefault();
const text = (e.clipboardData || window.clipboardData).getData('text');
const cleanText = text.replace(/[^a-zA-Z]/g, '');
document.execCommand('insertText', false, cleanText);
});
动态限制规则
根据条件动态改变限制规则。例如在密码输入时切换允许的字符集,或根据选项调整输入范围。
const dynamicInput = document.getElementById('dynamicInput');
const ruleSelector = document.getElementById('ruleSelector');
ruleSelector.addEventListener('change', function() {
const rule = this.value;
dynamicInput.setAttribute('maxlength', rule === 'strict' ? 8 : 16);
});






