方法一:使用正则表达式验证输入值是否合法。
javascript
<input type="text" id="myInput">
<script>
const input = document.getElementById("myInput");
input.addEventListener("input", function() {
const value = this.value;
const regex = /^[一-龥\s]+$/; // 匹配中文和空格的正则表达式
if (!regex.test(value)) {
this.value = value.replace(/[^一-龥\s]+/g, ""); // 将非中文和空格的字符替换为空
}
});
</script>
方法二:使用input事件和ASCII码验证输入值是否合法。
javascript
var input = document.getElementById("myInput");
input.addEventListener("input", function() {
var value = this.value;
var newValue = '';
for (var i = 0; i < value.length; i++) {
var asciiCode = value.charCodeAt(i);
if ((asciiCode >= 0 && asciiCode <= 64) || (asciiCode >= 91 && asciiCode <= 96) || (asciiCode >= 123 && asciiCode <= 127)) {
continue; // 排除掉ASCII码表中不符合条件的字符
} else {
newValue += value.charAt(i);
}
}
this.value = newValue;
});
上述代码中,我们使用for循环遍历输入的值中的每一个字符,并使用charCodeAt()方法获取每个字符的ASCII码。然后,我们根据ASCII码表中不符合要求的字符的范围来排除掉这些字符,只保留符合条件的字符。最后,我们使用一个新的字符串变量newValue来保存符合条件的字符,并将其赋值给输入框的value属性。