【问题标题】:Can anyone help me with JavaScript form validation?任何人都可以帮助我进行 JavaScript 表单验证吗?
【发布时间】:2016-05-19 06:02:16
【问题描述】:

我使用 JavaScript 创建了一个验证函数。我需要一个验证来测试表单中的密码字段,以确保它是:

  1. 至少 8 个字符。
  2. 包含一个数值。
  3. 包含一个字母值。

我只需要在我的验证函数中添加一个 If 语句

function Validate()
{
    with(document.memberInfo) {

        evt = new userInfo(username.value, password.value, email.value, firstname.value, lastname.value, age.value, description.value);
    }

    with(evt)
{
    if((email.indexOf("@",0)==-1))
    {
        alert("The email must contain the @ symbol.");
        return false;
    }






    evt.printEvent();
}
return true;
}

【问题讨论】:

  • 这不是免费的代码编写服务。您应该展示您尝试过的内容、预期的结果以及得到的结果,包括任何错误。
  • 我已经更新了答案..
  • 仍然没有您已经创建的代码。
  • @RobG 我已经添加了我的函数并且它可以工作我只需要帮助创建一个 if 语句来验证我的 HTML 表单的密码部分。抱歉,我是该网站的新手,我是一名编程学生

标签: javascript


【解决方案1】:

使用 regx 函数,您可以验证您的表单。这是代码。

var xstr="^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$";
var str=Document.getElementById("id").value;
    var ck=xstr.exec(str);
    if(!ck || ck[0]!=str){
       //code
    }

【讨论】:

    【解决方案2】:

    你可以使用正则表达式"/^(?=.*[0-9])(?=.*[a-zA-Z]).{8,}$/"参考这个链接stackoverflow

    JsFiddle

    var regex = /^(?=.*[0-9])(?=.*[a-zA-Z]).{8,}$/;
    
    function getValue()  {
        return document.getElementById("myinput").value;
    }
    
    function test() {
        alert(regex.test(getValue()));
    }
    
    function match() {
        alert(getValue().match(regex));    
    }
    
    <input type="text" id="myinput" value="vexillology"/>
    <button id="testBtn" onclick=test()>test</button>
    <button id="matchBtn" onclick=match()>match</button>
    

    【讨论】:

    • 这限制了密码只能是字母数字。
    • 这不正确。这要求在第一组字母数字字符之后至少有 7 个字符。我想你只是想要.{8,}
    【解决方案3】:

    使用正则表达式是可行的方法,但更具可读性的解决方案可能是:

    function isValid(pass) {
        return pass.length >= 8 &&    // at least 8 characters
               /\d/.test(pass)  &&    // contains a digit
               /[A-Za-z]/.test(pass); // contains a letter
    }
    

    function isValid(pass) {
      return pass.length >= 8 &&
             /\d/.test(pass)  &&
             /[A-Za-z]/.test(pass);
    }
    
    var field = document.getElementById("password");
    var output = document.getElementById("output");
    
    field.onkeyup = function() {
      output.innerHTML = isValid(field.value) ? "Valid" : "Not Valid";
    }
    <input type="text" id="password" placeholder="Enter password" />
    <span id="output"></span>

    或者,您可以将所有内容放在一个正则表达式中:

    function isValid(pass) {
        return /^(?=.*[A-Za-z])(?=.*\d).{8,}$/.test(pass);
    }
    

    JSFiddle

    【讨论】:

      猜你喜欢
      • 2021-06-24
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 2019-10-12
      • 2021-12-13
      • 1970-01-01
      相关资源
      最近更新 更多