【问题标题】:JavaScript validation for username and password用户名和密码的 JavaScript 验证
【发布时间】:2020-11-06 04:31:24
【问题描述】:

要求是:

  1. 检查用户输入以字符 [a-zA-Z] 开头的用户名并检查用户输入 3 或更多的用户名 字母数字字符。
  2. 要求用户输入8个或更多字符的密码,其中至少1个大写字母和1个数字和1个特殊字符 字符(/-+!@#$^&)。
  3. AND密码和确认密码输入相同。

我已经完成了电子邮件和所需的输入,但对如何在 JavaScript 中执行此操作感到困惑。

这就是我所做的:

<script>
function validateForm() {
        var nameRegex = /^[a-zA-Z\-]+$/;
    var passregex= /^(?=.{8,})(?=.*[0-9])(?=.*[A-Z])(?=.*[@#$%^&+*!]).*$/;
    var uname = document.myForm.firstName.value.match(nameRegex);
    var firstpassword=document.myForm.password.value;  
    var secondpassword=document.myForm.password2.value;
        var firstpassword = document.myForm.password.value.match(passregex);
    
    if(uname == null){
        if(uname.length<3){
        alert("Username length should be atleast 3 and make sure it starts with A-Z");}
        return false;
  }
  elseif(firstpassword==null){
    if(firstpassword.length<8){  
      alert("Password must be at least 6 characters long.");  
      return false;  
    }
    elseif(firstpassword==secondpassword){
      alert("Please enter same password");  
      return false;  
    }
  }
}
</script>

【问题讨论】:

  • 你能分享你以前的尝试吗?
  • 请添加您的代码,以便我们为您提供帮助。
  • @Parth,对不起!现在我已经添加了它
  • 如果你想匹配一个正则表达式和一些东西,你不能使用像这样的直接赋值name!="^[A-Za-z]"你需要匹配模式和用户输入。所以你可以使用if(YourRegularExpression.test(stringThatIsUserInput)),如果匹配就会返回true。

标签: javascript html regex


【解决方案1】:

function validateForm() {
  if (document.myForm.userName.value && document.myForm.password.value && document.myForm.confirmpassword.value) {
    if (document.myForm.password.value === document.myForm.confirmpassword.value) {
      if (document.myForm.userName.value.length < 3) {
        alert("Username length should be atleast 3 and make sure it starts with A-Z");
        return false;
      } else if (document.myForm.password.value.length < 8) {
        alert("Password must be at least 6 characters long.");
        return false;
      } else {
        if (new RegExp(/^[A-Za-z][A-Za-z0-9]+$/).test(document.myForm.userName.value) === false) {
          alert('Username begins with a character[a-zA-Z] ');
          return false;
        } else if (new RegExp(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[#$@!%&*?])[A-Za-z\d#$@!%&*?]{8, 30}$ /).test(document.myForm.password.value)) {
          alert("password is 8 or more characters where at-least 1 uppercase letter And 1 number AND 1 of the special characters (/-+!@#$^&)");
          return false;
        } else {
          alert('Success !');
          return true;
        }
      }
    } else {
      alert("password & confirm password not match!");
      return false;
    }
  } else {
    alert("Please add valid credentials..");
    return false;
  }
}
<form name="myForm" action="main.html" method="post">
  <!--  onSubmit="return validateForm();" -->
  <label>User name</label><br />
  <input type="text" name="userName" placeholder="userName" />
  <br />
  <label>Password</label><br />
  <input type="password" name="password" placeholder="password" />
  <br />
  <label>Confirm Password</label><br />
  <input type="password" name="confirmpassword" placeholder="confirm password" />
  <br />
  <input type="button" value="Login" onclick='validateForm();' />
</form>

注意:- 我已添加您的所有积分,如果出现问题,请告诉我!

【讨论】:

  • 你真棒:)
【解决方案2】:

尝试使用 jQuery 验证(https://jqueryvalidation.org/)。它可以很容易地实现。

【讨论】:

  • 我不想用这个。
  • 此问题未标记jquery
猜你喜欢
  • 2019-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 2013-12-26
  • 2016-01-24
  • 1970-01-01
相关资源
最近更新 更多