Javascript 创建登录时遇到问题
我正在努力确保我们的用户名包含一个数字,我们的密码是012345678。这是正确的吗?我的HTML中有一个包含电子邮件、用户名和密码的表格Javascript 创建登录时遇到问题,javascript,Javascript,我正在努力确保我们的用户名包含一个数字,我们的密码是012345678。这是正确的吗?我的HTML中有一个包含电子邮件、用户名和密码的表格 document.getElementById("login").addEventListener("submit", function(event) { event.preventDefault(); var user = document.querySelector(" input[name=username]"); var pass =
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"
}
});
不太对
“pass”和“user”变量将包含字符串。因此,您需要对它们使用字符串函数,并将它们与字符串进行比较
这意味着您不能使用“includes”,因为它不是有效的。相反,您将使用
user.value.indexOf("0")>=0 // indexOf will return -1 if it can't find what you are looking for
也就是说,有一种更好的方法可以测试字符串是否至少包含一个数字,使用:
最后,正如我所说,您需要将字符串与字符串进行比较。因此,对于您的密码检查:
pass.value === "012345678"
我使用了严格的相等运算符(==),因为在本例中,您绝对希望值是这个完整字符串。使用普通相等运算符(=)时,有时可能会发生某些强制转换,并产生误报
希望这有帮助 我建议使用正则表达式
window.onload=function(){
document.getElementById('test')。onclick=function(){
//测试用户名
var uname=document.getElementById('username')。值;
//测试密码
var password=document.getElementById('password')。值;
if(检查用户名(uname)和检查密码(password)){
console.log('一切都很好!');
}否则{
console.log('有点不对劲');
}
}
}
函数检查用户名(uname){
//检查用户名是否包含带有正则表达式的数字
如果(/\d/.test(uname)){
log('用户名包含数字');
返回true;
}否则{
log('用户名中需要有一个数字');
返回false;
}
}
功能检查密码(密码){
//检查密码是否等于字符串常量
如果(密码=='012345678'){
console.log('good password');
返回true;
}否则{
console.log('bad password');
返回false;
}
}
用户名:
密码:
您可能需要代码审阅SE,沿着大厅走到右边。这是调试小程序的一种可怕的方式。jdv伟大的提示人继续扼杀它,我们在代码上见review@jsully77np,随时!
pass.value === "012345678"