任何人都可以帮助我进行JavaScript表单验证吗?

时间:2016-05-19 06:02:17

标签: javascript

我使用JavaScript创建了一个验证功能。我需要一个验证,在表单中测试该密码字段以确保它是:

  1. 至少8个字符。
  2. 包含数值。
  3. 包含字母值。
  4. 我只需要在验证函数

    中包含一个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;
    }
    

3 个答案:

答案 0 :(得分:0)

您可以使用正则表达式"/^(?=.*[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>

答案 1 :(得分:0)

使用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)

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

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
}

&#13;
&#13;
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";
}
&#13;
<input type="text" id="password" placeholder="Enter password" />
<span id="output"></span>
&#13;
&#13;
&#13;

或者,您可以将其全部放在一个正则表达式中:

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

JSFiddle