Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 创建登录时遇到问题_Javascript - Fatal编程技术网

Javascript 创建登录时遇到问题

Javascript 创建登录时遇到问题,javascript,Javascript,我正在努力确保我们的用户名包含一个数字,我们的密码是012345678。这是正确的吗?我的HTML中有一个包含电子邮件、用户名和密码的表格 document.getElementById("login").addEventListener("submit", function(event) { event.preventDefault(); var user = document.querySelector(" input[name=username]"); var pass =

我正在努力确保我们的用户名包含一个数字,我们的密码是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"
  }    
});
不太对

“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"