gpt4 book ai didi

JavaScript Keycode 46 是 DEL 功能键还是 (.) 句号?

转载 作者:可可西里 更新时间:2023-11-01 02:17:56 26 4
gpt4 key购买 nike

我使用 jquery 在 JavaScript 中编写一些逻辑,我必须在其中根据 REGEX 模式检查输入内容:

"^[a-zA-Z0-9_]*$"  //Alpha-numeric and _

逻辑差不多完成了,我只是在过滤功能键 DEL 时遇到了一点问题,我的逻辑是这样的:

var FunctionsKey = new Array(8, 9, 13, 16, 35, 36, 37, 39, 46);

function keypressValidation(key) {
if (config.regexExp != null) {
if ($.inArray(key, FunctionsKey) != -1) {
return true;
}
else {
var keyChar = String.fromCharCode(key);
return RegexCheck(keyChar);
}
}
return true;
}

如果 KeyCode 是数组中的一个,我让它通过,如果不是,我得到 char 并将它与 REGEX 进行比较。问题是:在某些浏览器中,DEL 和“.” (句点符号)具有相同的 key 代码 46。

那么是否有更好的逻辑来过滤功能键,或者我必须为这种情况编写一个条件,也许从数组中删除 46 并尝试将其转换为 char,如果是 (.) 让它进入正则表达式功能如果不让它通过?另一个问题是在某些浏览器中是否有更多共享 key 代码?

编辑:我建议的解决方案不会起作用,因为用户按下哪个键(DEL 或句点)并不重要,我总是将 (.) 作为 CHAR 至少在 OPERA 和 FF =( 上。

最佳答案

110为十进制键码,46为DEL键。

为了一些乐趣:把它放进去看看你击中了什么!编辑:添加了一个重点事件

   /* handle special key press */
$(document).ready(function() {
function checkAKey(e) {
var shouldBubble = true;
switch (e.keyCode) {
// user pressed the Tab
case 9:
{
alert("Tab hit, no bubble");
shouldBubble = false;
break;
};
// user pressed the Enter
case 13:
{
alert("Enter");
break;
};
// user pressed the ESC
case 27:
{
alert("Escape");
break;
};
};
/* this propogates the jQuery event if true */
return shouldBubble;
};

$("*").keydown(function(e) {
return checkAKey(e);

});
});

$(document).ready(function() {
/* handle special key press */
function checkFieldKey(e, me) {
var shouldBubble = true;
switch (e.keyCode) {
// user pressed the Enter
case 13:
{
$(me).blur();
$("#somewhereElse").focus();
shouldBubble = false;
break;
};
};
/* this propogates the jQuery event if true */
return shouldBubble;
};
/* user pressed special keys while in Selector */
$("#myField").keydown(function(e) {
return checkFieldKey(e, $(this));
});
});

关于JavaScript Keycode 46 是 DEL 功能键还是 (.) 句号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2859587/

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