我有一个作用于 keydown 事件的函数,我希望它只允许数字、退格键和 1 个点。我无法让它发挥作用。这是我尝试过的:
$('#input[type="number"]').keydown(function(e) {
this.value = this.value.toLowerCase();
var regex = new RegExp("^[0-9.,\b]+$");
var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (!regex.test(key)) {
console.log('stop now')
e.preventDefault();
return false;
}
});
它仍然阻止点,但允许数字。我认为我的正则表达式是错误的,需要调整。
注释消失了,但一些用户建议这可能与 .
和 ,
的转义有关?有什么想法吗?
最佳答案
在 keydown
事件中使用 keypress
。对于 keydown
事件,某些按键会发送不同的字符代码。点就是其中之一,发送代码 190
而不是 ASCII 46
。你可以玩一下here .
关于javascript - 正则表达式 - 允许数字 0-9、Backsapce 和 1 点 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156233/