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