javascript - JS 函数执行错误

标签 javascript validation

我有这段代码,但不知何故,当我使用这个函数来验证我的输入字段时,除了 + 和 - 键之外,一切正常,甚至我认为它们是真的。我做错了什么?

function validateNumber(event)
{
    var key = window.event ? event.keyCode : event.which;

    if (event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 37 ||
        event.keyCode == 39 || event.keyCode == 107 || event.keyCode == 109 ||
        event.keyCode == 32 )
    {
        return true;
    }
    else if(key < 48 || key > 57)
    {
        return false;
    }
    else return true;
};

最佳答案

我没有看到您检查 189 (-) 和 187 (=,这是当您键入 + 时,真的会发生什么)。您可能想检查是否为 + 按下了 Shift 键。

如前所述,它总体上是一种错误的验证用户输入的方法。您需要检查输入的值,而不是单个击键。

首先,定义一个验证函数,用正则表达式检查任意文本:

function checkArithmetic(str) {
    var regexp = /^[0-9+-]$/;
    return regexp.test(str);
}

接下来,向您的输入元素添加一个处理程序:

input.addEventListener('input', function (e) {
    var value = input.value;

    if (checkArithmetic(value)) {
        // OK!
    } else {
        // error
    }
}, false);

关于javascript - JS 函数执行错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11791902/

相关文章:

Xcode 4.4.1 验证 Mac 应用程序时出错 : CFBundleExecutable of two bundles may not point to the same file

javascript - Jquery 文件大小验证不起作用

javascript - 在 Twitter Bootstrap 轮播中显示下一张和上一张图像

javascript - 为什么 "if"有效但 "switch"无效?

Javascript 我想知道我是否可以用函数中的字母交换 className

javascript - 使用 javascript 验证 html 表语法的正确性

html - play1.2.4框架html中无法显示错误信息

c - 在C中如何验证输入值只是正数?

javascript - react-intl - 访问嵌套消息

javascript - 在数组中查找值