Javascript 如何禁用shift+;angularjs中的任意键组合

Javascript 如何禁用shift+;angularjs中的任意键组合,javascript,angularjs,Javascript,Angularjs,我试图写一个指令,只允许数字和一个十进制值。但按下shift键时,数字会显示特殊字符 请建议一种不使用正则表达式的方法,因为我不想让用户键入其他字符 setTargetPage.directive('numPercent', function () { return { restrict: 'A', link: function (scope, element, attr, ctrl) { var keyCode = [8, 9,

我试图写一个指令,只允许数字和一个十进制值。但按下shift键时,数字会显示特殊字符

请建议一种不使用正则表达式的方法,因为我不想让用户键入其他字符

setTargetPage.directive('numPercent', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attr, ctrl) {
            var keyCode = [8, 9, 37, 39, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 110, 190];
            element.bind("keydown", function (event) {
                if ($.inArray(event.which, keyCode) == -1) {
                    event.preventDefault();
                }
                else {
                    if ((event.which == 110 || event.which == 190) && element.val().indexOf('.') > -1) {
                        event.preventDefault();
                    }
                }
            });
        }
    }
});
按下Shift键时,event.shiftKey(纯JS不需要特别设置AngularJS)为true