Javascript 为什么自定义验证后无法输入%sign

Javascript 为什么自定义验证后无法输入%sign,javascript,validation,keycode,Javascript,Validation,Keycode,我有一个要求,我可以输入不超过100(允许100)的数字。此外,这些数字的开头可以有+,-符号,结尾可以有% 我提出了下面的函数来进行验证。然而,即使在苦苦挣扎之后,我也无法解释为什么我已经输入了2位数字,却无法输入%符号 例:键入10后,我无法键入%(Shift+5) 我的职能: $scope.checkInputValidation = function(event, value) { var key = event.keyCode; var currentcharacter

我有一个要求,我可以输入不超过100(允许100)的数字。此外,这些数字的开头可以有
+
-
符号,结尾可以有
%

我提出了下面的函数来进行验证。然而,即使在苦苦挣扎之后,我也无法解释为什么我已经输入了2位数字,却无法输入
%
符号

例:键入10后,我无法键入
%
(Shift+5) 我的职能:

$scope.checkInputValidation = function(event, value) {
    var key = event.keyCode;
    var currentcharacter = String.fromCharCode(key);
    if (key === 91 || key === 187 || key === 189 || (15 < key && key < 19) || (35 <= key && key <= 40)) {
        return;
    }
    if (isNaN(currentcharacter) && ((currentcharacter !== "%") || (currentcharacter !== "+") || (currentcharacter !== "-") || (currentcharacter !== ""))) {
        if ((key !== 46) && (key !== 8)) {
            event.preventDefault();
            return false;
        }
    }
    var formattedValue;
    if (value.indexOf('%') !== -1) {
        formattedValue = value.replace('%', "");
    } else {
        formattedValue = value;
    }
    if (!isNaN(currentcharacter)) {
        if (parseInt(formattedValue + currentcharacter) > 100 || parseInt(formattedValue + currentcharacter) < -100) {
            event.preventDefault();
            return false;
        }
    }
}
$scope.checkInputValidation=函数(事件、值){
var key=event.keyCode;
var currentcharacter=String.fromCharCode(键);

如果(key==91 | | key==187 | | | key==189 | |(15currentcharacter
永远不会包含
%
字符。您必须结合
event.shiftKey
属性检查
5
(53)的key代码

if(key === 53 && event.shiftKey) {
    .. % pressed ..
}

currentcharacter
永远不会包含
%
字符。您必须结合
事件.shiftKey
属性检查
5
(53)的键码

if(key === 53 && event.shiftKey) {
    .. % pressed ..
}

检查字符串值是否等于100字符串值100指的是什么?
currentcharacter
永远不会包含
%
。必须结合
event.shiftKey
属性检查keyCode中的5(53)。
如果(key==53&&event.shiftKey){..%按下..}
谢谢你的建议……你的建议有效检查字符串值是否等于100字符串值100指的是什么?
currentcharacter
永远不会包含
%
。你必须结合
event.shiftKey
属性检查keyCode的5(53)。
if(key==53&&event.shiftKey){..%pressed..}
谢谢你的建议……你的建议奏效了