【发布时间】:2020-08-04 21:01:24
【问题描述】:
https://ysuran92.github.io/calculator-project/index
我有一个计算器项目,或类似的项目。它是用 HTML、CSS 和 JavaScript 制作的。 现在,在我的 JS 文件中,有一些代码可以防止诸如字母之类的字符出现在计算器的显示屏上。我唯一不明白的是如何“禁用”Shift+(0-9)。 这是一些代码:
// let regEx = /^\s*([-+]?)(\d+)(?:\s*([-+*\/])\s*((?:\s[-+])?\d+)\s*)+$/;
document.addEventListener("keydown", (event) => {
if (event.keyCode == 13 || event.code == "NumpadEnter") {
calc.value = eval(calc.value);
} else if (event.keyCode == 46) {
calc.value = "";
} else if (event.keyCode == 8) {
back();
} else if (event.keyCode >= 48 && event.keyCode <= 57) {
calc.value += event.key;
} else if (event.keyCode >= 96 && event.keyCode <= 105) {
calc.value += event.key;
} else if (
event.keyCode == 107 ||
event.keyCode == 109 ||
event.keyCode == 106 ||
event.keyCode == 111 ||
event.keyCode == 190 ||
event.keyCode == 110
) {
calc.value += event.key;
}
});
您可能会注意到,我已经尝试过 RegEx(它不起作用,可能是因为我对此一无所知)并且我也尝试过 event.preventDefault()。 任何提示或 cmets 将不胜感激。提前致谢。
【问题讨论】:
-
使用允许列表可能比使用阻止列表更好。移动用户不必按 Shift,我可以随时粘贴特殊字符。
标签: javascript regex calculator shift preventdefault