如何检查多个字符的输入.indexOf?

时间:2015-11-16 23:24:16

标签: javascript input indexof

我正在尝试检查用户是否输入了至少一个号码。如果是,输出=' okey'别的'没有数字'。这仅适用于第一个数字,但是当我输入2时,该功能回答“没有数字”。有任何想法吗?谢谢!

report()

1 个答案:

答案 0 :(得分:3)

您的问题是,您只需检查< 1'

的indexOf

特别是,这句话:

'1' || '2' === '1'

始终评估为'1'。这意味着您的indexOf始终会检查'1',而不是'2'

您可能正在寻找:

function nameSecurityCheck() {
        var firstNameValue = firstName.value;
        if (firstNameValue.indexOf('1') === -1 &&
            firstNameValue.indexOf('2') === -1) {
            alert.textContent = 'no number';
        } else {
            alert.textContent = 'okey';
        }
    }

编辑:但是,由于您实际上是在尝试检查字符串是否包含数字,因此可以使用快速正则表达式匹配:

var matches = value.match(/\d+/g);
if (matches == null) {
    alert('no number');
}