无法获得正确的键码

Can't get correct keycode

我正在尝试编写一个函数来检测按下的键是否是数字,但它无法正常工作,因为有时它会让非数字 "pass" 测试(更具体地说,这些键: e, i, a, d, f, g, h, c, b 和重音)。我不知道我做错了什么,但我想这与我的巴西键盘有一些额外的键(或没有)有关。

JS代码:

function myFunction (e) {
    if ((e.keyCode >= 48 && e.keyCode <= 57) ||
    (e.keyCode >= 96 && e.keyCode <= 105)) {
        // do something
    } else {
        console.log("Invalid key");
    }
}

HTML代码:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
            // the script is here
        </script>
    </head>
    <body onkeypress="myFunction(event)">
    </body>
</html>

只需删除这部分:|| (e.keyCode >= 96 && e.keyCode <= 105)
那些关键代码correspond to a-i.