我正在努力确保我们的用户名中包含一个数字,密码为012345678.这是正确的吗?我的HTML中有一个包含电子邮件,用户名和密码的表格。
document.getElementById("login").addEventListener("submit", function(event) {
event.preventDefault();
var user = document.querySelector(" input[name=username]");
var pass = document.querySelector(" input[name=password]");
if (user.value.includes(0) ||
user.value.includes(1) ||
user.value.includes(2) ||
user.value.includes(3) ||
user.value.includes(4) ||
user.value.includes(5) ||
user.value.includes(6) ||
user.value.includes(7) ||
user.value.includes(8) ||
user.value.includes(9)) {
// user is good
//now.. check the password
} else {
alert("Incorrect");
}
if (pass == 012345678) {
} else {
alert("Incorrect");
}
var Hmmm = document.getElementsByClassName("h1")[1]; {
document.querySelector("h1").innerText = "Good Job"
}
});
答案 0 :(得分:0)
不太对,不。
您的“通行证”和“用户”变量将保留字符串。所以你需要对它们使用字符串函数,并将它们与字符串进行比较。
这意味着您不能使用“包含”,因为它不是有效的string function。相反,你会使用
user.value.indexOf("0")>=0 // indexOf will return -1 if it can't find what you are looking for
话虽如此,使用regular expressions测试一个字符串是否包含至少一个数字有更好的方法:
user.value.match(/[0-9]/)
最后,正如我所说,你需要将字符串与字符串进行比较。所以对于你的密码检查:
pass.value === "012345678"
我使用了严格相等运算符(===),因为在这种情况下,您绝对希望该值为此完整字符串。当您使用普通等式运算符(==)时,可能会发生某些有时会发生的转换并产生误报。
希望这有帮助!
答案 1 :(得分:0)
window.onload = function() {
document.getElementById('test').onclick = function() {
// test username
var uname = document.getElementById('username').value;
// test password
var password = document.getElementById('password').value;
if (checkUsername(uname) && checkPassword(password)) {
console.log('everything is good!');
} else {
console.log('something is wrong');
}
}
}
function checkUsername(uname) {
// checks if the username contains a digit with regex
if (/\d/.test(uname)) {
console.log('Username contains digit');
return true;
} else {
console.log('Username needs to have a digit in it.');
return false;
}
}
function checkPassword(password) {
// checks the password to be equal to string constant
if (password === '012345678') {
console.log('good password');
return true;
} else {
console.log('bad password');
return false;
}
}

<label for="username">Username: <input type="textbox" id="username" /></label>
<label for="password">Password: <input type="password" id="password" /></label>
<input type="button" id="test" value="Submit" />
&#13;