javascript - 使用 JS 使用正则表达式验证用户输入时遇到问题

标签 javascript regex

我对这些东西完全是菜鸟。 但我的目标是接受某个用户名并使用某个密码进行验证。 我搜了又搜,一夜未果,所以在这里寻找答案。

我的 html 代码:

<form action="" method="POST" id="loginForm">
  <label for="userName" accesskey="F"><br>Username:</label>
  <input type="username" name="userName" id="userName">
  <label for="password"><br>Password:&nbsp;</label>
  <input type="password" name="password" id="password">
  <button>Submit</button>
</form>

我的代码位于单独的 javascript 文件中(由 html 文件调用):

function validate(id) {
  var guest1User = /guest1/;
  var guest2User= /[guest1]/;
  var guest1Pass= /[guest2]/;
  var guest2Pass= /[guest1]/

  var userCheck= document.getElemetnById(userName);
  var passCheck= document.getElementById(password);
  if (guest1User.test(userCheck.value)) {
    if (guest1Pass.test(passCheck.value)) {
      return true;

    } else { 
      return false; 
    }
  }
  if (guest2User.test(guestCheck.value)) {
    if (guest2Pass.test(passCheck.value)) {
        return true;
    } else {
      return false; 
    }
  } else {
    return false;
  }
}
validate();

最佳答案

尝试以下方法:

根据您的评论,您想知道 js 文件如何知道其函数已被调用......因此您需要通过以下方式将 js 文件包含在 html 文件中:

<script type="text/javascript" src="somefile.js"></script>

确保 somefile.js 的路径正确,例如,如果您的文件系统是这样的:

/root/js/

/root/html/

<script type="text/javascript" src="../js/somefile.js"></script>

并且您的 html 文件位于 html 文件夹内,那么您将 js 文件引用为:

function validate(id) {
  var guest1User = /guest1/g;
  var guest2User= /[guest1]/g;
  var guest1Pass= /[guest2]/g;
  var guest2Pass= /[guest1]/g;


  var userCheck= document.getElementById('userName');
  var passCheck=document.getElementById('password');
  
  if (guest1User.test(userCheck.value)) {
  console.log("true");
    if (guest1Pass.test(passCheck.value)) {
          console.log("true");
          return true;

    } else { 
        console.log("false");
        return false; 
    }
  }
  else
  {
    console.log("false");
    return false;
  
  }

}
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!--
<script type="text/javascript" src="../js/somefile.js"></script>
-->
</head>

<body>
<form action="#" method="POST" id="loginForm">
  <label for="userName" accesskey="F"><br>Username:</label>
  <input type="username" name="userName" id="userName">
  <label for="password"><br>Password:&nbsp;</label>
  <input type="password" name="password" id="password">
  <input type=submit onclick="return validate();" value="submit"/>
</form>
</body>

</html>

关于javascript - 使用 JS 使用正则表达式验证用户输入时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42941897/

相关文章:

javascript - 仅对 DIV 内的文本应用样式

java - 使用正向后视或反向引用哪个更有效?

regex - sed:从文件中删除数字

r - 在变量中搜索字符串并返回匹配的字符串

javascript - -0.5 到 0.5 之间的随机数,高效

javascript - 使用二维数组作为查找表与计算点击

javascript - 这是什么代码?/^(\d{4}|\d{6})$/

javascript - 为什么 string.replaceAll() 不是 Android React Native 上的函数?

python - 在 Python 中使用正则表达式正确匹配嵌套括号

regex - 正则表达式表示连续两个相同的元音