gpt4 book ai didi

Javascript 正则表达式禁用 Shift、Alt 和 Ctrl 键

转载 作者:行者123 更新时间:2023-11-28 13:25:12 24 4
gpt4 key购买 nike

我使用以下正则表达式禁用除数字、逗号和点之外的所有内容。

function isNumber(evt) {
var theVal = $(evt).val();
var theEvent = theVal || window.event;
var key = theEvent.keyCode || theEvent.which;

key = String.fromCharCode(key);

if (key.length == 0) return;
var regex = /^[0-9.,\b]+$/;

if (!regex.test(key)) {
theEvent.returnValue = false;
if (theEvent.preventDefault) theEvent.preventDefault();
}
}

HTML 代码:

<input type="text" id="number" onkeydown="isNumber($(this));" />

它工作得很好,但如果我按住 Shift 键,那么我可以在我不希望用户输入的框中输入字母和特殊字符能够做到。

我需要在上面的正则表达式中添加什么才能阻止 ShiftCtrlAlt 键?

最佳答案

它不起作用的原因是因为 SHIFT 是一个 KEYDOWN 事件(shiftKey==true 且 keyCode==0),当您按下另一个键时,会触发第二个事件,这就是它显示符号的原因。

如果将事件更改为 onkeypress,它应该可以工作。

此外,您根本不需要 jQuery,请参阅此处:

https://jsfiddle.net/1569atLz/1/

警告:人们仍然可以复制粘贴到编辑框中(除非您检查是否有任何更改而不仅仅是按键),因此请确保在发送时始终验证服务器端数据!任何人都可以轻松地按 F12 并使用开发工具强制进行更改。

关于Javascript 正则表达式禁用 Shift、Alt 和 Ctrl 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29826239/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com