jquery 如何在javascript中使用event.keycode防止特殊字符

xxb16uws  于 2022-11-03  发布在  jQuery
关注(0)|答案(2)|浏览(160)

你好,我想知道什么是确切的事件。键码数字值为下面的特殊字符!@ # $ % ^ & *()。
我有下面的代码。

$(window).keydown(function (event) {
    if (event.keyCode == 116 || event.keyCode == 93 || event.keyCode == 33 ||
        event.keyCode == 34 || event.keyCode == 123 || event.keyCode == 154 ||
        event.keyCode == 82 || event.keyCode == 17 || event.keyCode === 38 ||
        event.keyCode === 40 || event.keyCode === 13 
     ) {
        event.preventDefault();
        return false;
    }

});

我想使用上述功能,并防止在使用移动的设备时输入特殊字符。
我尝试了下面的事件。键码数字。但同样的不起作用。

event.keyCode == 161 || event.keyCode == 64 || event.keyCode == 163 ||
        event.keyCode == 164 || event.keyCode == 165 || event.keyCode == 160 ||
        event.keyCode == 166 || event.keyCode == 171 || event.keyCode === 168 ||
        event.keyCode === 169

我正在努力寻找解决办法,并在这个过程中学习。

44u64gxh

44u64gxh1#

使用.key属性(Documentation)(它将返回按下的键的字符)和一个数组includes,我们可以大大简化这个过程:
第一个

mwngjboj

mwngjboj2#

最简单的可能是使用RegExp。

$(window).keydown(function (event) {
  var regex = new RegExp("^[a-zA-Z0-9]+$");
  if (!regex.test(event.key)) {
    event.preventDefault();
    return false;
  }
});

相关问题