防止otp输入字段中出现特殊字符的Javascript代码



嗨,我有下面的javscript代码。我正在尝试为特殊字符(!@#$%^&*(((添加从48到57的事件代码。这样在键入时文本字段中就不会发生任何事情。

$(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.keyCode == 48 || event.keyCode == 49 || event.keyCode == 50 ||
event.keyCode == 51 || event.keyCode == 52 || event.keyCode == 53 ||
event.keyCode == 54 || event.keyCode == 55 || event.keyCode === 56 ||
event.keyCode === 57
) {
event.preventDefault();
return false;
}
});

上述代码不适用于事件代码48至57。每当我试图在输入字段中键入特殊字符时,我都会在输入字段中得到数字

! for 1
@ for 2 
# for 3 
$ for 4
% for 5 
^ for 6
& for 7
* for 8
( for 9
) for 0

我正在努力寻找解决方案,并在这个过程中学习。谢谢

Hello一个简单的解决方案就是正则表达式。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions?retiredLocale=de

$(window).keydown(function (event) {
if (/[!@#$%^&*()]/.test(event.key)) {
event.preventDefault();
return false;
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>Try to enter the forbidden characters, you'll notice it doesn't work</p>
<input />

最新更新