如何检查多个字符的输入.indexOf?
how to check input .indexOf for multiple characters?
我正在尝试检查用户是否至少输入了一个数字。如果是,则输出 = 'okey' else 'no number'。这仅适用于第一个数字,但是当我输入 2 时,函数会回答 'no number'。有任何想法吗?谢谢!
var firstName = document.getElementById('firstName');
var alert = document.getElementById('check');
function nameSecurityCheck() {
var firstNameValue = firstName.value;
if (firstNameValue.indexOf('1' || '2') === -1) {
alert.textContent = 'no number';
} else {
alert.textContent = 'okey';
}
}
firstName.addEventListener('blur', nameSecurityCheck, false);
您的问题是您只检查“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');
}
我正在尝试检查用户是否至少输入了一个数字。如果是,则输出 = 'okey' else 'no number'。这仅适用于第一个数字,但是当我输入 2 时,函数会回答 'no number'。有任何想法吗?谢谢!
var firstName = document.getElementById('firstName');
var alert = document.getElementById('check');
function nameSecurityCheck() {
var firstNameValue = firstName.value;
if (firstNameValue.indexOf('1' || '2') === -1) {
alert.textContent = 'no number';
} else {
alert.textContent = 'okey';
}
}
firstName.addEventListener('blur', nameSecurityCheck, false);
您的问题是您只检查“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');
}