我使用正则表达式只允许字母、数字和点 (.)
$('input').on('keydown', function (e) {
if (/^[a-zA-Z0-9\.\b]+$/.test(String.fromCharCode(e.keyCode))) {
return;
} else {
e.preventDefault();
}
});
但是,仍然可以插入诸如 "、é、~e、#、$ 等字符。所以我指的是您使用 Shift 键键入的字符。
此外,仍然允许使用 alt+1234 输入字符。
有没有办法在输入的 keydown 事件中阻止这种情况?
最佳答案
keypress事件在浏览器注册时发送给一个元素 键盘输入。这类似于 keydown 事件,除了在 键重复的情况。如果用户按住一个键,一个 keydown 事件触发一次,但触发单独的按键事件 对于每个插入的字符。
因此,要避免 SHIFT + KEY、ALT + KEY,请使用 keypress
而不是 keydown
$('input').on('keypress', function (e) {
if (/^[a-zA-Z0-9\.\b]+$/.test(String.fromCharCode(e.keyCode))) {
return;
} else {
e.preventDefault();
}
});
关于javascript - 防止输入引号等字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27720364/