【发布时间】:2014-12-31 11:18:11
【问题描述】:
我使用正则表达式只允许字母、数字和点 (.)
$('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 事件中防止这种情况发生?
【问题讨论】:
-
和stackoverflow.com/a/10866473差不多,也面临同样的问题。
-
@M42 我使用 \b 来允许退格。正则表达式工作正常,但它仍然允许很多特殊字符。我认为这更像是一个 javascript 问题而不是正则表达式问题。
-
使用 keypress 代替 keydown 来防止 ALT+1...
标签: javascript jquery html regex