gpt4 book ai didi

javascript - 使用 shift 修饰符从键码中获取键字符(值)

转载 作者:数据小太阳 更新时间:2023-10-29 05:53:28 25 4
gpt4 key购买 nike

我很幸运地找到了 String.fromCharCode()。它对我帮助很大。但是,我注意到它没有考虑到 shift 修饰符。我知道 event.shiftKey 属性并使用它,但现在我需要获取考虑到 shift 键修饰符的键值(例如:“A”或“a”)。起初我使用 String.toLowerCase().. 但我忽略了数字键,举个例子:“5”(不带 shift)和“%”(带 shift)。我需要在我的程序中区分两者。获取键字符值的简单方法是什么?

最佳答案

这种蛮力技术不是最漂亮的,但它似乎有效。我正在寻找相同的功能。

function mapKeyPressToActualCharacter(isShiftKey, characterCode) {
if ( characterCode === 27 || characterCode === 8 || characterCode === 9 || characterCode === 20 || characterCode === 16 || characterCode === 17 || characterCode === 91 || characterCode === 13 || characterCode === 92 || characterCode === 18 ) {
return false;
}
if (typeof isShiftKey != "boolean" || typeof characterCode != "number") {
return false;
}
var characterMap = [];
characterMap[192] = "~";
characterMap[49] = "!";
characterMap[50] = "@";
characterMap[51] = "#";
characterMap[52] = "$";
characterMap[53] = "%";
characterMap[54] = "^";
characterMap[55] = "&";
characterMap[56] = "*";
characterMap[57] = "(";
characterMap[48] = ")";
characterMap[109] = "_";
characterMap[107] = "+";
characterMap[219] = "{";
characterMap[221] = "}";
characterMap[220] = "|";
characterMap[59] = ":";
characterMap[222] = "\"";
characterMap[188] = "<";
characterMap[190] = ">";
characterMap[191] = "?";
characterMap[32] = " ";
var character = "";
if (isShiftKey) {
if ( characterCode >= 65 && characterCode <= 90 ) {
character = String.fromCharCode(characterCode);
} else {
character = characterMap[characterCode];
}
} else {
if ( characterCode >= 65 && characterCode <= 90 ) {
character = String.fromCharCode(characterCode).toLowerCase();
} else {
character = String.fromCharCode(characterCode);
}
}
return character;
}

关于javascript - 使用 shift 修饰符从键码中获取键字符(值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3337188/

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